Pessoal,
Estou acesso com dbf via ADODB.Connection, só que notei uma lentidão absurda na leitura, existe algum exemplo ou conector para ler mais rápido ?
A tabela que eu estou lendo tem 25 mil registros com 11 campos tá levando mais de 15 minutos para ler.
Ler DBF com conexão ADODB.Connection
Moderador: Moderadores
Ler DBF com conexão ADODB.Connection
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ler DBF com conexão ADODB.Connection
Não tem informação suficiente pra dizer alguma coisa.
Usar o ADO, pode usar qualquer coisa, tem algumas opções pra DBF, mas que não fazem parte do ADO.
Além disso, há formas diferentes de usar o ADO, ou de recuperar informações.
Também não sei se está dizendo sobre acesso direto ou via rede.
cheguei a usar ADS Local, que é grátis, compatível com Clipper SIX/CDX, e o acesso era rápido.
Usar o ADO, pode usar qualquer coisa, tem algumas opções pra DBF, mas que não fazem parte do ADO.
Além disso, há formas diferentes de usar o ADO, ou de recuperar informações.
Também não sei se está dizendo sobre acesso direto ou via rede.
cheguei a usar ADS Local, que é grátis, compatível com Clipper SIX/CDX, e o acesso era rápido.
Sei não se não deveria ser instantâneo ou quase....asimoes escreveu:A tabela que eu estou lendo tem 25 mil registros com 11 campos tá levando mais de 15 minutos para ler.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Ler DBF com conexão ADODB.Connection
Vou preparar o exemplo para quem quiser estudar
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ler DBF com conexão ADODB.Connection
a string pra ADS local, compatível com SIXCDX (fonte VB6):
demorar tudo isso, talvez neste comando que eu usava no aplicativo de transportes.
Totais de tudo, vindos de DBFs diferentes, contendo movimentação de vários anos.
( Fonte VB6 mas não muito diferente do Harbour).
Código: Selecionar todos
Case "ADSLOCAL"
cString = "Provider=Advantage.OLEDB.1;" & _
"Mode=Share Deny None;" & _
"Show Deleted Records in DBF Tables with Advantage=False;" & _
"Data Source=" & Sistema.PathDefault & ";Advantage Server Type=ADS_Local_Server;" & _
"TableType=ADS_CDX;Security Mode=ADS_IGNORERIGHTS;" & _
"Lock Mode=Compatible;" & _
"Use NULL values in DBF Tables with Advantage=True;" & _
"Exclusive=No;Deleted=No;"
Totais de tudo, vindos de DBFs diferentes, contendo movimentação de vários anos.
( Fonte VB6 mas não muito diferente do Harbour).
Código: Selecionar todos
cSql = "select " & _
"cnDatEmi DtEmissao, " & _
"count(*) CtrcQtd, " & _
"Sum(cnPeso) CtrcPeso, " & vbCrLf & _
"Sum(cnValor) CtrcValor, " & _
"Sum(cnVlMerc) ValorMerc, " & _
"0 CFQtd, " & vbCrLf & _
"0 CFValor, " & _
"0 ColetaQtd, " & _
"0 ColetaVlr, " & vbCrLf & _
"0 ColVlMerc " & vbCrLf & _
"into lixo " & _
"From gtconhe group by DtEmissao "
cSql = cSql & _
"union all " & vbCrLf & _
"select cfDatEmi DtEmissao, " & _
"0 CtrcQtd, " & _
"0 CtrcPeso, " & vbCrLf & _
"0 CtrcValor, " & _
"0 ValorMerc, " & _
"count(*) CFQtd, " & vbCrLf & _
"Sum(CFValor) CfValor, " & _
"0 ColetaQtd, " & _
"0 ColetaVlr, " & vbCrLf & _
"0 ColVlMerc " & vbCrLf & _
"From gtcontr group by DtEmissao "
cSql = cSql & vbCrLf & _
"union all " & _
"Select " & _
"ceDatEmi DtEmissao, " & _
"0 CtrcQtd, " & vbCrLf & _
"0 CtrcPeso, " & _
"0 CtrcValor, " & _
"0 ValorMerc, " & vbCrLf & _
"0 CFQtd, " & _
"0 CFValor, " & _
"Count(*) ColetaQtd, " & vbCrLf & _
"Sum(ceValFat) ColetaVlr, " & _
"Sum(jpnftr1.ntValor) ColVlMerc " & vbCrLf & _
"from jpordem " & _
"left join jpnftr1 on jpordem.ceNumLan = jpnftr1.ntColeta " & _
"group by DtEmissao " & vbCrLf
SET Rs = cnMySql.Execute( cSql )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
