FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Instrucci贸n Similar a SQLEXEC de VFP - Off Topic
Posts: 14
Joined: Mon Jul 16, 2012 10:31 AM
Instrucci贸n Similar a SQLEXEC de VFP - Off Topic
Posted: Sat Aug 20, 2016 12:26 AM
Estimados:
Para comentarles, que se me present贸 un desarrollo de Interfaz de exportar datos de BD Progress hac铆a PostgreSql, el asunto es ten铆a que juntar informaci贸n contenida en varias tablas y exportar a las de PostgreSql pero resumidas, para lo cual hice mano de Visual Foxpro 9 ... y bueno la programaci贸n es muy similar a FW y Harbour/xHarbour.
En VFP existe esta funci贸n: SQLEXEC es muy potent铆sima pues permite mediante SQL atacar cualquier BD y devuelve cursores que pueden manejarse como Cursores propiamente dichos y tambi茅n como tablas DBF a las cuales incluso se pueden crear 铆ndices, hacer b煤squedas, append, reclock, etc.
Aqu铆 pongo una porci贸n del c贸digo empleado para ver si con FW se puede hacer o tratar de encontrar algo similar.
- En cuanto a TEXT TO ... he probado con FW y funciona correctamente y est谩 muy bueno pues evita la fatiga de estar concatenando la cadena de la consulta.
- En el c贸digo mostrado, la instrucci贸n: SQLEXEC(nBdFe,cQry,"oRstmpdet") hace la consulta a la BD contenida en la variable cQry y el resultado es un Recordset (el nombre puede ser distinto al mostrado).
- El Recordset devuelto - en este caso se llama "oRstmpdet"- se puede manipular como si fuera una tabla DBF.
- En este caso el Recordset existe mientras la conexi贸n est谩 activa, y se elimina autom谩ticamente cuando se cierra la conexi贸n

Ejemplo 1:

Code (fw): Select all Collapse
聽 聽 聽 cQry := " "
聽 聽 聽 TEXT TO cQry NOSHOW TEXTMERGE PRETEXT 1+2+4+8
聽 聽 聽 聽 聽 SELECT fedetalle.tipodoc, fedetalle.tipoletra, fedetalle.seriedoc, fedetalle.numerodoc, fedetalle.nroitem
聽 聽 聽 聽 聽 FROM fedetalle
聽 聽 聽 聽 聽 WHERE fedetalle.tipodoc = '<<ALLTRIM(cTipodoc)>>' AND
聽 聽 聽 聽 fedetalle.tipoletra = '<<cTipoletra>>' AND
聽 聽 聽 聽 fedetalle.seriedoc = <<cSeriedoc>> AND
聽 聽 聽 聽 聽 聽 聽 聽 fedetalle.numerodoc= <<nNnumerodoc>> AND
聽 聽 聽 聽 聽 聽 聽 聽 fedetalle.nroitem = <<nNroitem>>
聽 聽 聽 ENDTEXT
聽 聽 聽 SQLEXEC(nBdFe,cQry,"oRsCab")
聽 聽 聽 GO TOP
聽 聽 聽 DO WHILE NOT EOF()
聽 聽 聽 聽 聽 聽 聽....
聽 聽 聽 聽 聽 聽 聽....



Ac谩 otro ejemplo de SQLEXEC en donde se puede copiar el Recordset a una tabla DBF 茅 incluso la crea en una carpeta del Disco duro.

Ejemplo 2:
Code (fw): Select all Collapse
聽 聽 聽 cQry := " "
聽 聽 聽 TEXT TO cQry NOSHOW TEXTMERGE PRETEXT 1+2+4+8
聽 聽 聽 聽 聽 SELECT fedetalle.tipodoc, fedetalle.tipoletra, fedetalle.seriedoc, fedetalle.numerodoc, fedetalle.nroitem
聽 聽 聽 聽 聽 FROM fedetalle
聽 聽 聽 聽 聽 WHERE fedetalle.tipodoc = '<<ALLTRIM(cTipodoc)>>' AND
聽 聽 聽 聽 fedetalle.tipoletra = '<<cTipoletra>>' AND
聽 聽 聽 聽 fedetalle.seriedoc = <<cSeriedoc>> AND
聽 聽 聽 聽 聽 聽 聽 聽 fedetalle.numerodoc= <<nNnumerodoc>> AND
聽 聽 聽 聽 聽 聽 聽 聽 fedetalle.nroitem = <<nNroitem>>
聽 聽 聽 ENDTEXT
聽 聽 聽 cmdcab = SQLEXEC(nBdFe,cQry,"oRsCab")
聽 聽 聽 COPY TO .\DATA\cabecera.dbf
聽 聽 聽 SELECT 1
聽 聽 聽 USE cabecera SHARED ALIAS cabecera
聽 聽 聽 INDEX ON tipodoc+tipoletra+seriedoc+numerodoc TO .\DATA\cabecera
聽 聽 聽 GO TOP
聽 聽 聽 DO WHILE NOT EOF()
聽 聽 聽 聽 聽 聽 聽....
聽 聽 聽 聽 聽 聽 聽....


驴Existe alguna funci贸n de FW similar a SQLEXEC ?.

Saludos.
Atte.
Lucho Montero.
Lima - Per煤.
---------------------------------------------------------------------------------------------
FW + xHarbour 1.2.3 + ADO + Borland C 5.8.2
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Instrucci贸n Similar a SQLEXEC de VFP - Off Topic
Posted: Sat Aug 20, 2016 12:58 AM

Lucho:

Todo Lo que mencionas lo puedes hacer con ADO + FW, nada extra.

ADO son 7 comandos SQL, FW?, pues ya lo conoces.

Date un vuelta por el siguiente LINK

http://www.recursosvisualbasic.com.ar/h ... es/ado.htm

O busca ADO en San Google y veras que hay mucha literatura.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion