FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour De sql a dbf
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
De sql a dbf
Posted: Tue Aug 01, 2023 03:47 PM

Saludos amigos foreros.

Alguien tiene algun ejemplo de como llevar los datos resultantes de una consulta sql a una dbf?

La idea es generar reportes desde esa dbf.

Gracias por las ideas que puedan aportarme.

"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: De sql a dbf
Posted: Tue Aug 01, 2023 04:11 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: De sql a dbf
Posted: Tue Aug 01, 2023 07:44 PM
Hola como vas?

Con ADO lo hacemos de la siguiente manera:
Code (fw): Select all Collapse
    cQry := "SELECT * FROM tu_tabla"
    oRs := FW_OPENRECORDSET(oCn,cQry,adLockOptimistic,adOpenKeyset)
    FW_AdoExportToDBF( oRs , ".\dbfs\elresultado.dbf" , .F. )
    oRs:close()

       De aqui en adelante haces el resto del informe.
       Utilizando esta técnica se acelera de manera asombrosa el proceso de generación de informes
       sobre todo cuando estas trabajando en un servidor remoto
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: De sql a dbf
Posted: Wed Aug 02, 2023 12:30 AM

Gracias joao, voy a darle un vistazo.

Leandro, muchas gracias. No uso ADO. Uso tdolphin.

"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: De sql a dbf
Posted: Wed Aug 02, 2023 11:41 AM
Hola Jose:
En los samples de DOLPHIN tienes un ejemplo
Code (fw): Select all Collapse
#include "tdolphin.ch"

FUNCTION Main()
  
   LOCAL oServer, oQry
   LOCAL oExp, cTime
  
   D_SetCaseSensitive( .T. )
   
   IF ( oServer := ConnectTo() ) == NIL
      RETURN NIL
   ENDIF
   cls
   oQry = oServer:Query( "SELECT * FROM clientes" )
   
   oExp = oQry:Export( EXP_DBF, "client.dbf" )
   oExp:bOnStart = { || QOut( "Started..."), QOut( ""), cTime := Time() }
   oExp:bOnRow = {| o, n | ShowLine( n, oQry:LastRec() ) }
   oExp:bOnEnd = { || QOut( "Elapse time: " + ElapTime( cTime, Time() ) ), QOut( "Finished...") }
   
   oExp:Start()
   
RETURN NIL


PROCEDURE ShowLine( n, nTotal )

@ Row(),1 say Str( n / nTotal * 100 ) + "%"

RETURN
Posts: 74
Joined: Sun Aug 27, 2017 07:18 PM
Re: De sql a dbf
Posted: Wed Aug 02, 2023 11:58 AM
Code (fw): Select all Collapse
oCn   := FW_DemoDB()  // Maria db nativo 
//  oCn := Maria_Connect( {cHost, "", cUser, cPass } )
//FWCONNECT oCn HOST "localhost" USER "root" PASSWORD "secret" DB "fwh"


cSql  := "SELECT * FROM minhatabela"
   oCn:SaveToDBF( cSql, "c:\temp\TEMP.DBF" )
   OU 
   cFile := Get_File()
   oCn:SaveToDBF( cSql, cFile )
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: De sql a dbf
Posted: Wed Aug 02, 2023 03:32 PM
jair wrote:
Code (fw): Select all Collapse
cSql  := "SELECT * FROM minhatabela"
   oCn:SaveToDBF( cSql, "c:\temp\TEMP.DBF" )
   OU 
   cFile := Get_File()
   oCn:SaveToDBF( cSql, cFile )
No veo el metodo SaveToDbf en la clase TDolphin, existe?
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: De sql a dbf
Posted: Wed Aug 02, 2023 06:40 PM

Gracias César, gracias Jair.

Muchas gracias a todos.

Voy a probar y estaré comentando los resultados.

Un abrazo.

"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: De sql a dbf
Posted: Fri Aug 04, 2023 08:04 AM
Running SQL query directly from DBF
Please try these samples.
You can do a lot more
Code (fw): Select all Collapse
cFolder := "c:\fwh\samples\"
oCn := FW_OpenAdoConnection( cFolder )
oRs := FW_OpenRecordSet( oCn, "SELECT ID,FIRST,CITY,SALARY FROM CUSTOMER" )
XBROWSER  oRs AUTOSORT
oRs:Close()
oCn:Close()
Another example:
Code (fw): Select all Collapse
cFolder := "c:\fwh\samples\"
oCn := FW_OpenAdoConnection( cFolder )
oRs := FW_OpenRecordSet( oCn, ;
   "SELECT [STATE],SUM(SALARY) AS SALARY FROM CUSTOMER GROUP BY STATE" )
XBROWSER  oRs AUTOSORT
oRs:Close()
oCn:Close()
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion