• Lunes 29 de Abril de 2024, 02:51

Autor Tema:  Trabajar Con Dbf  (Leído 5062 veces)

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Trabajar Con Dbf
« en: Jueves 23 de Marzo de 2006, 00:31 »
0
Holas tengo una preguntilla....

Eh tratado de varias formas hacer una tabla DBF desde VB.Net.... Y no eh encontrado una solucion aceptable....

Lo intente grabando la informacion en un archivo de excel y grabandocon con formato DBF IV, pero es muy lento...

Intente grabandolo en un archivo y poniendolela extension DBF... Este es rapido pero no funciona al momento de querer abrir la tabla con el sistema que trabajara con ella....

Alguien tiene alguna otra forma :S.....?
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->

Maxi.Net

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #1 en: Miércoles 5 de Abril de 2006, 04:25 »
0
Haber que te parece si crear la tabla en acces y luego importas el archivo DBF desde access eso resulta, pero si lo vas a hacer a "còdigo" NO tengo idea de como puedes hacerlo.

En modo grafico y con acces:

Creas la BD. Archivo Obtener datos externos -> Importar, escoges DBaseIII

Eso!! espero sirva de algo
<span style=\'font-family:Geneva\'>M@xixD</span>: No existen preguntas tontas, sólo sus respuestas

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #2 en: Jueves 6 de Abril de 2006, 03:14 »
0
Gracias por tu ayuda...

Aunque la forma en que lo necesito es por codigo...

Logre hacerlo a la antiguita con el ADODB.dll :D.
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->

Maicol

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #3 en: Miércoles 19 de Abril de 2006, 17:34 »
0
HOla soy nuevo en este grupo aun no se muy bien como funciona ... bueno yo desde vb.net quiero crear un tabla dbf con lkos datos de mi datatable y creo q tu ya lo hiciste me puedes orientar

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #4 en: Miércoles 19 de Abril de 2006, 17:50 »
0
&lt;_&lt; OK Te ajunto un ejemplo...

Código: Text
  1.  
  2. Public Sub Familias()
  3.         Dim oGenArch As New GenerarArch(oApplicationContext)
  4.         Dim dsMultU As DataSet, drMultU As DataRow, vlComando As String, vlCadena As String
  5.  
  6.         CrearDBF(&#34;C:&#092;DPT&#092;AUD&#092;&#34;, &#34;FAMILIA&#34;, &#34;[Codigo] TEXT (2), [Nombre] TEXT (25)&#34;)
  7.  
  8.         Dim oConDBF As New ADODB.ConnectionClass
  9.         Dim oRstDBF As New ADODB.RecordsetClass
  10.  
  11.         oConDBF.Open(&#34;DRIVER={Microsoft dBASE Driver (*.dbf)};DBQ=C:&#092;DPT&#092;AUD&#092;&#34;)
  12.         oRstDBF.Open(&#34;SELECT * FROM [FAMILIA];&#34;, oConDBF, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, ADODB.CommandTypeEnum.adCmdText)
  13.  
  14.         vlComando = &#34;SELECT * FROM CatalogoFamilias&#34;
  15.         dsMultU = DatosATrans(vlComando, &#34;CatalogoFamilias&#34;)
  16.         For Each drMultU In dsMultU.Tables(0).Rows
  17.             oRstDBF.AddNew()
  18.             oRstDBF.Fields(&#34;Codigo&#34;).Value = drMultU!CodFamilia
  19.             vlCadena = drMultU!Descripcion
  20.             If vlCadena.Length &#62; 25 Then
  21.                 oRstDBF.Fields(&#34;Nombre&#34;).Value = vlCadena.Substring(0, 25)
  22.             Else
  23.                 oRstDBF.Fields(&#34;Nombre&#34;).Value = drMultU!Descripcion
  24.             End If
  25.             oRstDBF.Update()
  26.         Next
  27.         dsMultU = Nothing
  28.  
  29.         oRstDBF.Close()
  30.         oConDBF.Close()
  31.  
  32.     End Sub
  33.  
  34.     Public Sub CrearDBF(ByVal Base As String, ByVal Nombre As String, ByVal Campos As String)
  35.         Dim pconBase As Odbc.OdbcConnection
  36.         Dim pcmdTB As Odbc.OdbcCommand
  37.  
  38.         pconBase = New Odbc.OdbcConnection
  39.         pcmdTB = New Odbc.OdbcCommand
  40.         pconBase.ConnectionString = &#34;DRIVER={Microsoft dBASE Driver (*.dbf)};DBQ=&#34; & Base
  41.         pconBase.Open()
  42.         pcmdTB.CommandText = &#34;CREATE TABLE [&#34; & Nombre & &#34;] (&#34; & Campos & &#34;);&#34;
  43.         pcmdTB.Connection = pconBase
  44.         pcmdTB.ExecuteNonQuery()
  45.         pconBase.Close()
  46.     End Sub
  47.  
  48.     Public Function DatosATrans(ByVal strComandSQL As String, ByVal strTabla As String) As DataSet
  49.  
  50.         Dim sccnnConnection As New SqlConnection(oApplicationContext.ApplicationConfiguration.DataStorageConfiguration. _
  51.                                                   GetConnectionString)
  52.  
  53.         Dim sccmdSelectAll As SqlCommand
  54.         Dim scdaMovCont As SqlDataAdapter
  55.         Dim dsMovCont As DataSet
  56.  
  57.         sccmdSelectAll = New SqlCommand
  58.         scdaMovCont = New SqlDataAdapter
  59.         dsMovCont = New DataSet
  60.  
  61.         With sccmdSelectAll
  62.  
  63.             .Connection = sccnnConnection
  64.  
  65.             .CommandText = &#34;[DatosATrans]&#34;
  66.             .CommandType = System.Data.CommandType.StoredProcedure
  67.  
  68.             .Parameters.Add(New System.Data.SqlClient.SqlParameter(&#34;@ComandSQL&#34;, System.Data.SqlDbType.Text))
  69.  
  70.         End With
  71.  
  72.         scdaMovCont.SelectCommand = sccmdSelectAll
  73.  
  74.         Try
  75.  
  76.             sccnnConnection.Open()
  77.  
  78.             scdaMovCont.SelectCommand.Parameters(&#34;@ComandSQL&#34;).Value = strComandSQL
  79.  
  80.             'Fill DataSet
  81.             scdaMovCont.Fill(dsMovCont, strTabla)
  82.  
  83.             sccnnConnection.Close()
  84.  
  85.         Catch oSqlException As SqlException
  86.  
  87.             If (sccnnConnection.State &#60;&#62; ConnectionState.Closed) Then
  88.                 Try
  89.                     sccnnConnection.Close()
  90.                 Catch
  91.                 End Try
  92.             End If
  93.  
  94.             Throw New ApplicationException(&#34;Los registros no pudieron ser leidos debido a un error de base de datos.&#34;, oSqlException)
  95.  
  96.         Catch ex As Exception
  97.  
  98.             If (sccnnConnection.State &#60;&#62; ConnectionState.Closed) Then
  99.                 Try
  100.                     sccnnConnection.Close()
  101.                 Catch
  102.                 End Try
  103.             End If
  104.  
  105.             Throw New ApplicationException(&#34;Los registros no pudieron ser leidos debido a un error de aplicación.&#34;, ex)
  106.  
  107.         End Try
  108.  
  109.         sccnnConnection.Dispose()
  110.         sccnnConnection = Nothing
  111.  
  112.         Return dsMovCont
  113.  
  114.     End Function
  115.  
  116.  
  117.  

Espero y con esto te ayude....

Las funciones se pueden optimizar mas para exportar cualquier DataTable.... Solo es cuestion de meterlo algo mas de empeño.... ;) ..

P.D. Lo use en VB 2003...
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->

Maicol

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #5 en: Miércoles 19 de Abril de 2006, 17:55 »
0
hola gracias por responder ami mensaje .....
bueno tengo una duda
esto a se refiere

 Dim oGenArch As New GenerarArch(oApplicationContext)

el GenerarArch es una clase aparte q tienes

Maicol

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #6 en: Miércoles 19 de Abril de 2006, 19:17 »
0
Hola De Nuevo Profacvor me podrias dar mas nocines acerca de dbf como hiciste para crearlo
gracias

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #7 en: Miércoles 19 de Abril de 2006, 21:20 »
0
Ups...
Código: Text
  1.  
  2.  Dim oGenArch As New GenerarArch(oApplicationContext)
  3.  
  4.  

Borra eso jaja, se me paso quitarla.. De hecho ahi tengo las funciones para crear la tabla y obtern los datos de SQL Server...

Pero en este caso no se necesitan....

Lo que hago con las tres funciones que mande es lo siguiente....

Como te explico.. Esque .. mira....
 :blink:

Primero Creo La tabla..
Luego hago un select a la misma llenando un recordset de esos que se usane n VB 6.0.
Y a ese le agrego los registros..
oRstDBF.AddNew()

Me crea un registro de trabajo (asi le digo yo).... Y le meto los valores a las columnas....
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->

Maicol

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #8 en: Miércoles 19 de Abril de 2006, 22:21 »
0
y q valor le mandas en esta variable por la usas en 2 de las 3 funciones q me pasate

 oApplicationContext

en Familias y en datosatrans

Maicol

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #9 en: Miércoles 19 de Abril de 2006, 22:42 »
0
ya lo logre realizar gracias te pasaste eres lo maximo
 :comp:

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Trabajar Con Dbf
« Respuesta #10 en: Jueves 20 de Abril de 2006, 03:18 »
0
Ah pues en esa variable mando la configuracion de la aplicacion...

Por ejemplo el servidor de base de datos......
Impuestos
Almacen
Caja
FolioFactura....
Servidor Web


todo lo que te puedas imaginar..... que necwesite un punto de venta que controle Ventas a Credito, Clientes, etc... Y actualmente comunicacion con SAP....

En pocas palabras esa variable no la encontraras jeeje
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->