Page 1 of 1

Xbrowse error OrdKeyCount

Posted: Mon Jan 02, 2012 1:01 pm
by Pedro
Hola a todos
Este error parece que es persistente y extraño, y digo esto porque de cuatro tablas que abro de la misma forma, el error se produce en tres.
Debo decir que el programa ha estado compilado y está funcionando con la versión 9.04 sin que de este problema, ha sido ahora al compilar con la versión 11.06 _ pedidos cuando me ha saltado el problema.
He puesto el Xbrowse.prg como un prg más de la aplicación, para ver donde estaba el problema, también he mirado en el foro lo que había al respecto y ninguna de las soluciones que se han aportado me ha servido, el error persiste en esta línea : 3723 DEFAULT ::bGoTop := {|| ( ::cAlias )->( DbGoTop() ) }
al parecer el browse, hagas lo que hagas incluso oBrw:End intenta repintarse en algún lugar y como se ha hecho un cierre de tablas, pues da el error DBCMD/2001 Workarea not in use: ORDKEYCOUNT

¿Qué solución hay para este problema?

Re: Xbrowse error OrdKeyCount

Posted: Tue Jan 03, 2012 7:04 pm
by Pedro
Me urge solucionar este problema

Hay alguna solución posible?

Re: Xbrowse error OrdKeyCount

Posted: Wed Jan 04, 2012 6:02 am
by wmormar
Pedro,

DEFAULT ::bGoTop := {|| if(( ::cAlias )->(used()), ( ::cAlias )->( DbGoTop() ), NIL) }

Es algo chapucero, pero bien podria servirte.

Re: Xbrowse error OrdKeyCount

Posted: Wed Jan 04, 2012 10:11 am
by Pedro
Hola William
Usé tu solución y no da resultado, el error persiste en la misma línea.
A ver si Antonio puede dar una solución

Re: Xbrowse error OrdKeyCount

Posted: Wed Jan 04, 2012 3:09 pm
by Carlos Mora
Pedro,

probablemente, como tu bien dices, se esté intentando repintar algún browse con las tablas cerradas. Se me ocurre que tal vez sea buena idea cerrar las tablas despues de cerrar la ventana, tal vez sea posible. Tambien prueba de hacer un :Hide() del Dialogo o la ventana antes de cerrar las tablas, a ver si así evitas el error.

Sin ver el codigo es dificil poder opinar.

Un saludo.

Re: Xbrowse error OrdKeyCount

Posted: Wed Jan 04, 2012 3:19 pm
by José Luis Sánchez
Hola,
Yo recuerdo que en un xbrowse derivado del original se podía desconectar el browse del alias del dbf para hacer cosas sin que afectasen al pintado. Incluso había un método hide() del propio browse. Igual por ahí van los tiros.

Saludos,

Re: Xbrowse error OrdKeyCount

Posted: Wed Jan 04, 2012 5:06 pm
by Pedro
Hola Carlos
Ya lo he intentado de todas las maneras posibles, cerrar primero las tablas, cerrar el browse, cerrar la ventana. Cerrar el browse, cerrar las tablas, cerrar la ventana. Cerrar la ventana, cerrar las tablas, cerrar el browse. Cerrar ventana, cerrar browse, cerrar tablas. En todos _ da el mismo error y en la misma línea. El código es simple Carlos,

Code: Select all

      DEFINE BUTTON OF oBar ACTION oWChildFac:End();
      RESOURCE "TERMINAR" PROMPT "Salir" GROUP TOOLTIP "Salir de "+cTexto
Así era como funcionaba antes sin problemas, ahora ponlo como gustes, dbCloseAll(), oWChildFac:End(), o como quieras, siempre que pulses el botón salir de la window te pega el error al salir.
Es más he puesto una función para salir, cambiando ACTION oWChildFac:End() por SalirWindows(oWChildFac,oBrw) y allí hacer lo siguiente :

Code: Select all

oBrw:End()
dbCloseAll()
oWChildEnd()
pues bien en cuanto llega al dbcloseAll() casca el programa cono el dichoso error, y fíjate bien que, supuestamente, el browse ya está cerrado.
José Luis, el browse no lo desconecto de su Alias, supuestamente se desconecta cuando se cierra el browse o la tabla.
De todas formas intentaré un Hide de la window en el cierre a ver si así evito el error.