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: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
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, 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/
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)
