Pessoal,
A questão é para o driver DBFCDX tanto para HBNETIO/LETODB onde encontrei comportamento diferente para os dois gerenciadores.
O comando SET AUTOPEN ON faz com que o indice do dbf seja aberto automaticamente sem a necessidade de SET INDEX TO (CDX)
Funciona tanto com HBNETIO/LETODB notei a seguinte diferença:
Tenho uma rotina onde eu preciso criar indices temporários para uma tabela que já tem um indice.
Antes de criar o indice faço:
AbreDbf("APC01")
APC01->(ordListClear())
INDEX ON Codigo TAG IND001 FOR Empty(D_Deslig) .AND. !Deleted() MEMORY ADDITIVE
Com hbnetio o indice é acrescentado aos indices que já existem, ou seja o ordlistclear não funcionou.
Com letodb funciona o ordlistclear somente o indice ind001 está na área de trabalho do dbf
Diferença de comportamento com SET AUTOPEN ON hbnetio/letodb
Moderador: Moderadores
Diferença de comportamento com SET AUTOPEN ON hbnetio/letodb
►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)
Diferença de comportamento com SET AUTOPEN ON hbnetio/letodb
Exemplificando:
Sem letodb/hbnetio
Sem letodb/hbnetio
Código: Selecionar todos
SET AUTOPEN ON
fErase("TESTDBF.CDX")
aStruct:={}
aAdd(aStruct, {"CODIGO", "C", 5, 0})
aAdd(aStruct, {"NOME", "C", 30, 0})
DbCreate( "TESTDBF", aStruct, "DBFCDX",.T., "TESTDBF" )
INDEX ON CODIGO TAG CODIGO TO TESTDBF
INDEX ON NOME TAG NOME TO TESTDBF
TESTDBF->(DbCloseArea())
DbUseArea(.T., "DBFCDX", "TESTDBF", "TESTDBF", .T.)
TESTDBF->(ordListClear())
INDEX ON Codigo TAG IND001 FOR !Deleted() MEMORY ADDITIVE
INDEX ON Codigo + Nome TAG IND002 FOR !Deleted() MEMORY ADDITIVE
FOR I:=1 TO TESTDBF->(OrdCount())
? TESTDBF->(OrdName(i)), TESTDBF->(OrdKey(i))
inkey(0)
NEXT
►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)
Diferença de comportamento com SET AUTOPEN ON hbnetio/letodb
Testando, ser usar SET AUTOPEN ON ordListClear() não funciona isso com hbnetio, com letodb funciona.
►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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Diferença de comportamento com SET AUTOPEN ON hbnetio/letodb
Se não me engano, autoopen não é recomendado.
Aqui sempre usei com ele desligado, mesmo com Clipper e SIXCDX.
Aqui sempre usei com ele desligado, mesmo com Clipper e SIXCDX.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
Diferença de comportamento com SET AUTOPEN ON hbnetio/letodb
Quintas,
O interessante é que com letodb funciona! sem o autopen tem que especificar o indice com SET INDEX TO
O interessante é que com letodb funciona! sem o autopen tem que especificar o indice com SET INDEX TO
►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)
