Ola, alguem conhece alguma forma de fazer querys num DBF? (utilizando comandos SQL)
É que eu lembrei que no Delphi existe esse recurso. Claro que não deve haver nenhum ganho significativo de performace (talvez nenhum), porem a facilidade de usar uma query as vezes é uma mão na roda.
Se não existir eu tava pensando em fazer um tradutor de querys pra DBF.
Valeu.
Querys em DBF
Moderador: Moderadores
Querys em DBF
"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio." (I Coríntios 3:18)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
Re: Querys em DBF
Olá
Também me interesso pelo assunto. Cheguei a começar um projeto de Query que ficou parado. O [Alexandre Kresin][/http://kresin.belgorod.su/clipper.html] tem um programa de dbf com query, mas não vi os fontes. Dê uma olhada mais a fundo e talvez eles estejam lá. Neste link tem também um artigo sobre otimização de queries.
Também me interesso pelo assunto. Cheguei a começar um projeto de Query que ficou parado. O [Alexandre Kresin][/http://kresin.belgorod.su/clipper.html] tem um programa de dbf com query, mas não vi os fontes. Dê uma olhada mais a fundo e talvez eles estejam lá. Neste link tem também um artigo sobre otimização de queries.
-
edmarfrazao
- Usuário Nível 3

- Mensagens: 185
- Registrado em: 06 Dez 2005 11:16
Re: Querys em DBF
Tem que usar xharbour com ads.
Código: Selecionar todos
#include "ADS.CH"
rddRegister( "ADS", 1 )
SET SERVER LOCAL
vSql:=[Select * from clientes]
vArqLan := EXECUTA_SQL(vSql,[CTLANCAM])
FUNCTION EXECUTA_SQL(vSql,vAlias,vINd1)
// Local vArea := Alias()
Local xNomeArq :=Cria_Nometmp()
Local xErro := 0
// Local nArea :=Select()
local nErr, nPos
* if vArea#''
* close &vArea
* endif
if mDriver=[SQLRDD]
oSql := SR_GetConnection()
select 0 // for‡a selecionar uma nova area
apCode := SR_SQLParse( vSql, @nErr, @nPos )
cComm := SR_SQLCodeGen( apCode, , oSql:nSystemID )
xErro := oSql:exec( cComm,,.t.,[teste], M_DIRTMP+[\]+xNomeArq,vAlias )
// xErro := oSql:exec( cComm,,.t.,[teste], M_PTDIRET3+[\]+xNomeArq,vAlias )
// use &cComm alias &vAlias via mDriver new
if xErro#0
M_Aviso([Erro na execu‡Æo do sql ]+Str(xErro))
endif
if vInd1#nil
CriaIndice(xNomeArq,vINd1)
endif
return Alias()
else
// IF adsGetConnectionHandle() == 0
adsConnect( "c:\SIS\FIRMA1") // this is the path to your .dbf/.cdx files
// ENDIF
IF !adsCreateSqlStatement ("alias_sql", 2) // alias_sql is a alias to be used in the browse bellow
alert( "Cannot create SQL statement" )
ELSE
IF !adsExecuteSqlDirect ( vSql )
M_Aviso([Erro na execu‡Æo do sql ]+Str(xErro))
ENDIF
ENDIF
RETURN
endif
return .t.
FUNCTION INV_DT_SQL(vData)
Local vSql:=[]
IF MDSN=[MSSQL]
vSql:=vData
ELSE
vSql:=Subst(vData,4,2)+[/]+Left(vData,2)+Right(vData,5)
ENDIF
return vSql
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Querys em DBF
Boa tarde Edmar.
Muito interessante esta opção.
Ficam entretanto, dúvidas....
Há documentação de uso ? Muito Possivelmente não há esta documentação... Infelizmente.
Se não há documentação, onde há exemplos que expliquem os seu uso, e ajudem a superar o caminho das pedras.
No xHarbour 1.1.0 baixado via CVS há na pasta \Contrib\rdd_ads um exemplo testmg.prg, que ainda não testei, mas pelo que entendi, há necessidade de se compilar ou providenciar, antes de mais nada, os arquivos ace32.dll ( Advantage Client Engine ), AXCWS32.DLL ( communication layer for remote server ) or ADSLOC32.DLL ( local server )
Ai ainda ficam as grandes interrogações que são os comando e funções disponíveis para o uso dos recursos disponíveis que, segundo deu para entender são MUITOS !!!.
Muito interessante esta opção.
Ficam entretanto, dúvidas....
Há documentação de uso ? Muito Possivelmente não há esta documentação... Infelizmente.
Se não há documentação, onde há exemplos que expliquem os seu uso, e ajudem a superar o caminho das pedras.
No xHarbour 1.1.0 baixado via CVS há na pasta \Contrib\rdd_ads um exemplo testmg.prg, que ainda não testei, mas pelo que entendi, há necessidade de se compilar ou providenciar, antes de mais nada, os arquivos ace32.dll ( Advantage Client Engine ), AXCWS32.DLL ( communication layer for remote server ) or ADSLOC32.DLL ( local server )
Ai ainda ficam as grandes interrogações que são os comando e funções disponíveis para o uso dos recursos disponíveis que, segundo deu para entender são MUITOS !!!.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: Querys em DBF
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.

