Page 1 of 1

Error al grabar registro

Posted: Wed Aug 09, 2006 4:06 pm
by Manuel Valdenebro
Comento el tema por si a alguien le ha sucedido y me puede ayudar:

Una aplicación que usan muchos usuarios independientes, en uno de ellos tengo el siguiente poblema:

Al modificar los datos de un registro utilizando DATABASE, al grabarlo, lo hace en otro registro diferente "machacando" los datos y conservando el registro original sin cambios. El ordenador en cuestión es nuevo y con memoria potente. Tiene un procesador AMD.

¿Alguna idea?

Posted: Wed Aug 09, 2006 5:04 pm
by Armando Picon
Es posible que tengas un problema de índices. Trata de recrearlos nuevamente o que se regeneren automáticamente cuando se borren.

Hasta ahora no utilizo DATABASE porque no le tengo muchísima confianza.

Saludos

Armando

Posted: Wed Aug 09, 2006 5:23 pm
by RenOmaS
Si por algun motivo el puntero a la base de datos se mueve... por ejemplo se pinta un browse conectado a la Base de datos..Cuando le des ::Save() en la clase DATABASE, pues te va a grabar en el puntero actual.
Como haces la edicion del registro??

Saludos

Posted: Thu Aug 10, 2006 7:28 pm
by Manuel Valdenebro
RenOmaS wrote:Como haces la edicion del registro??
Muy sencilla:

SELE pepito
oDbf := TDataBase():New()
oDbf:Load()

DEFINO un DIALOGO
Varios Get con las variables oDbf:xxx
BOTON ACEPTAR ACTION ( oDbf:save(), oDlg:End() )
BOTON SALIR
ACTIVO DIALOGO

El problema se produce en un ordenador en concreto que por alguna causa (procesador, antivirus, etc) no consigue mantenen la pila.

Posted: Thu Aug 10, 2006 8:24 pm
by Antonio Linares
Manuel,

No tienes un browse por debajo del diálogo ?

Posted: Fri Aug 11, 2006 3:33 am
by Manuel Valdenebro
Antonio Linares wrote:No tienes un browse por debajo del diálogo ?
Antonio,

En el diálogo, tiene un folder con 8 pestañas, 4 de las cuales tienen Listbox, pero con bases de datos diferentes. Una complicación adicional es que en mi ordenador no da error, sino solo en un usuario a 500 kms de distancia. De momento lo he solucionado con una chapucilla, y es antes del DATABASE hago un nRecno := RECNO() y antes del oDbf:SAVE() un DBGOTO (nRecno).

La demo de la aplicación se puede bajar desde http://ciberia.ya.com/lebsoft/descarga.htm

y el error se le produce a este usuario cuando hay varios inquilinos y modifica las condiciones de uno de ellos.

Posted: Sun Aug 13, 2006 12:34 pm
by Ricardo Ramirez E.
Manuel :

Recuerdo... haber pasado con ello.. cuando editada un registro de un oDbf usando la TSbrowse de MM, lo solucioné ocultando el oBrw antes de la edicion y volviendolo a mostrar luego de terminar la edicion del registro.. (antes de mostrar el oDlg con los datos del registro obrw:Hide() y luego de cerrar el odlg ::oBrw:Show())

No se si en la Ver 7.0 de la Tsbrowse ya esta solucionado ello


P.D. Como dato adicional te cuento que el error tambien se daba en pcs con processador Intel.. por lo que pienso que por ahi no van los tiros :)

Saludos.


Ricardo!

Posted: Sun Aug 13, 2006 1:55 pm
by Manuel Valdenebro
Gracias Ricardo