Page 3 of 4

Re: Pasar tablas SQL Server a DBF

PostPosted: Sun Jul 16, 2017 3:38 pm
by nageswaragunupudi
Excluding the CASE Table, export was successful.

The problem may be because CASE is a reserved word.
This name will keep creating problems in any other database too, Please consider renaming the table

Re: Pasar tablas SQL Server a DBF

PostPosted: Sun Jul 16, 2017 3:53 pm
by Compuin
nageswaragunupudi wrote:If you are using ADO for MySql, you can use FW_AdoImportFromDBF()
If you are using FWMYSQL for connecting to MySql, you can use oCn:ImportFromDBF()



Thanks

Do you have an example to use FW_AdoImportFromDBF() ?

I tried with the sample from wiki and it didn't work

Re: Pasar tablas SQL Server a DBF

PostPosted: Sun Jul 16, 2017 5:36 pm
by nageswaragunupudi
Code: Select all  Expand view

FW_AdoImportFromDBF( oCn, "c:\fwh\samples\states.dbf" )  // use lower case
oRs := FW_OpenRecordSet( oCn, "states" )
XBROWSER oRs
 

Re: Pasar tablas SQL Server a DBF

PostPosted: Tue Jul 18, 2017 5:52 pm
by Compuin
nageswaragunupudi wrote:
Code: Select all  Expand view

FW_AdoImportFromDBF( oCn, "c:\fwh\samples\states.dbf" )  // use lower case
oRs := FW_OpenRecordSet( oCn, "states" )
XBROWSER oRs
 


Thanks Mr Rao,

It's work for just one dbf but I have 2014 dbf to import into MySql.

Which is the best way to do it for several dbfs ?

I'm doing on this way but it doesn't work

Code: Select all  Expand view
#include "FiveWin.ch"

//----------------------------------------------------------------//

REQUEST DBFCDX

function Main()
   local cServer     := "localhost"
   local cDatabase   := "SBODemoUS"
   local cUser       := "root"
   local oCn, oRs, aTables, cTable
   
   oCn := FW_OpenAdoConnection( "MYSQL, localhost, SBODemoUS, root", .t. )
   
   if oCn == nil
      ? "Connect Fail"
   else
      ? "connected"
   endif

   aTables := FW_AdoTables( oCn )          
   
   if oCn == nil
      ? "Connect Fail"
   else
      XBROWSER aTables
   endif  
   
   for each cTable in aTables
      FW_AdoImportFromDBF( oRs, cFileSetExt( cTable, "dbf" ), .t. )
      oRs   := FW_OpenRecordSet( oCn, cTable )
      oRs:Close()
   next  
 
   ? "IMPORTACION FINALIZADA"
       
   oCn:Close()

return nil
//----------------------------------------------------------------//

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:13 pm
by Compuin
Cristobal,

Tendra alguna sugerencia para leer varios DBF e Importar a MySql?

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:18 pm
by cnavarro
Por qué no puedes usar el codigo de Mr Rao?

No he entendido el problema que tienes con tu codigo anterior

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:22 pm
by Compuin
cnavarro wrote:Por qué no puedes usar el codigo de Mr Rao?

No he entendido el problema que tienes con tu codigo anterior


Tengo varios Dbf (son mas de 2000) y el codigo de Mr Rao es solo para un Dbf

Alli es donde me tranque

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:24 pm
by cnavarro
Pero te conecta correctamente al servidor?

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:30 pm
by cnavarro
El problema lo tienes, porque lo estás haciendo al revés

La instrucción
Code: Select all  Expand view

aTables := FW_AdoTables( oCn )
 

es incorrecta, eso te devuelve las tablas que hay en el servidor, y tú necesitas los dbf que vas a importar

Tienes que leer todos los dbf para pasárselos a la function de importación

Code: Select all  Expand view


aTables := HB_dirScan( cPath, "*.dbf", "A" )   // Por ejemplo
XBrowse( aTables )
 


Después haces un For .... Next y le vas aplicando cada elemento de la tabla a la function de importacion ( ojo con añadirle el path al nombre si es necesario ), todo en minúsculas eso si

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:34 pm
by Compuin
cnavarro wrote:Pero te conecta correctamente al servidor?


Si

El programa funciona y conecta pero no puede importar el Dbf a la base de datos de mysql

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:35 pm
by cnavarro
Has leido mi post anterior?

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:35 pm
by Compuin
cnavarro wrote:El problema lo tienes, porque lo estás haciendo al revés

La instrucción
Code: Select all  Expand view

aTables := FW_AdoTables( oCn )
 

es incorrecta, eso te devuelve las tablas que hay en el servidor, y tú necesitas los dbf que vas a importar

Tienes que leer todos los dbf para pasárselos a la function de importación

Code: Select all  Expand view


aTables := HB_dirScan( cPath, "*.dbf", "A" )   // Por ejemplo
XBrowse( aTables )
 


Después haces un For .... Next y le vas aplicando cada elemento de la tabla a la function de importacion ( ojo con añadirle el path al nombre si es necesario ), todo en minúsculas eso si



Tengo los Dbf en el mismo directorio que el ejecutable....no necesito path alli?

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:37 pm
by Compuin
Compuin wrote:
cnavarro wrote:El problema lo tienes, porque lo estás haciendo al revés

La instrucción
Code: Select all  Expand view

aTables := FW_AdoTables( oCn )
 

es incorrecta, eso te devuelve las tablas que hay en el servidor, y tú necesitas los dbf que vas a importar

Tienes que leer todos los dbf para pasárselos a la function de importación

Code: Select all  Expand view


aTables := HB_dirScan( cPath, "*.dbf", "A" )   // Por ejemplo
XBrowse( aTables )
 


Después haces un For .... Next y le vas aplicando cada elemento de la tabla a la function de importacion ( ojo con añadirle el path al nombre si es necesario ), todo en minúsculas eso si



Tengo los Dbf en el mismo directorio que el ejecutable....no necesito path alli?


Voy a probar y te comento

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:39 pm
by cnavarro
El for seria algo asi

Code: Select all  Expand view


   For x =1 to Len( aTables )

        FW_AdoImportFromDBF( oCn, lower( aTables[ x ][ 1 ] ) )

   Next x

 


O incluso

Code: Select all  Expand view

    AEVal( aTables, { | a | FW_AdoImportFromDBF( oCn, lower( a[ 1 ] ) ) } )

 

Re: Pasar tablas SQL Server a DBF

PostPosted: Wed Jul 19, 2017 1:40 pm
by Compuin
Colocandolo asi

Code: Select all  Expand view
aTables := HB_dirScan( "*.dbf", "A" )   // Por ejemplo
   XBrowse( aTables )


Me trae el Xbrowse vacio

Los dbf estan en el mismo directorio del ejecutable