Ese error se produce porque crea datasets QUE NO ESTÁN asignados a ningún formulario y por lo tanto no se destruyen automáticamente. Tiene que hacerlo usted mismo.#2: Object TDbfDataSet (COL_ARTI.DBF) not destroyed correctly.
Saludos
Ese error se produce porque crea datasets QUE NO ESTÁN asignados a ningún formulario y por lo tanto no se destruyen automáticamente. Tiene que hacerlo usted mismo.#2: Object TDbfDataSet (COL_ARTI.DBF) not destroyed correctly.
Código: Seleccionar todo
AEVAL(oDataSource:aDataSet, {|o|o:destroy()})
Código: Seleccionar todo
FUNCTION CerrarTodoDS( aDS )
local oDS
LOCAL nPos
aDS:=IF( aDS == NIL, DataSources(), aDS )
for nPos:=Len(aDS) TO 1 STEP -1
oDS:=aDS[nPos]
AEVAL(oDS:aDataSet, {|o|o:destroy()})
oDS:end()
next
RETURN NIL
alexandrasoft escribió: ↑Mar Feb 22, 2022 2:42 pm #2: Object TDbfDataSet (COL_ARTI.DBF) not destroyed correctly.
Hola si los destruia pero no en el lugar correcto quizaalexandrasoft escribió: ↑Mar Feb 22, 2022 2:42 pmEse error se produce porque crea datasets QUE NO ESTÁN asignados a ningún formulario y por lo tanto no se destruyen automáticamente. Tiene que hacerlo usted mismo.#2: Object TDbfDataSet (COL_ARTI.DBF) not destroyed correctly.
Saludos
Olá, suas informações resolveram quase todos os meus problemas. Ainda preciso corrigir alguns fechamentos. Muito obrigado pela ajuda e desculpas pelo meu portuguêsHurricane escribió: ↑Mar Feb 22, 2022 8:28 pm Olá,
use apenas destroy e sem condicionais ( já faz o :close() ):Versão mais compacta e parametrizável:Código: Seleccionar todo
AEVAL(oDataSource:aDataSet, {|o|o:destroy()})
Lembre-se de compilar com Debug para ver se a mensagem ainda aparece.Código: Seleccionar todo
FUNCTION CerrarTodoDS( aDS ) local oDS LOCAL nPos aDS:=IF( aDS == NIL, DataSources(), aDS ) for nPos:=Len(aDS) TO 1 STEP -1 oDS:=aDS[nPos] AEVAL(oDS:aDataSet, {|o|o:destroy()}) oDS:end() next RETURN NIL
hb_gcAll() - se realmente for necessário, acho que ficaria melhor na última linha para única execução.
alexandrasoft escribió: ↑Mar Feb 22, 2022 2:42 pm #2: Object TDbfDataSet (COL_ARTI.DBF) not destroyed correctly.