"Registro fantasma" en TRxMemoryData.
Hola a tod@s:
¡Que título tan misterioso para el asunto de este hilo!
Ahora me pongo serio y lo explico... Tengo dos TRxMemoryData (para entendernos mejor MemoryDataOrigen y MemoryDataDestino) asociados a sus respectivos DBGrid, a los que paso información de uno a otro utilizando las técnicas de arrastrar y soltar. La copia de registros de un TRxMemoryData a otro funciona a la perfección. Después de haber finalizado el procedimiento de copia del registro, doy la posiblidad al usuario de cancelar la operación. Si el usuario decide cancelar, borro el registro del siguiente modo: TRXMemoryData.Delete . Hasta aquí todo es correcto.
Supongamos que MemoryDataDestino está vacío, y tras una operación de arrastrar y soltar (con éxito), el usuario decidió cancelar la operación, y en ese momento el MemoryDataDestino queda de nuevo con 0 registros. Si el usuario vuelve a realizar una segunda operación (de nuevo con éxito) lo lógico sería que ahora hubiese 1 registro. Mi sorpresa, y por eso lo de "registro fantasma" es que aparecen 2 registros.
Dicho de otra manera, si se copia un registro y a continuación se elimina, al añadir un nuevo registro por segunda vez, aparece el "fantasma" del eliminado (con el valor de los campos vacíos) más el añadido (2 registros). Y lo sorprendente es que después de eliminar el registro, el RecordCount me devuelve 0, y la propiedad IsEmpty me devuelve True. Todo esto no sucede si hay más de un registro. Es como si TRXMemoryData "no entendiese" el concepto de tabla vacía.
He probado a vaciar el TRXMemoryData con el método EmptyTable, pero sigue igual.
Espero haberme explicado correctamente. ¿Alguna sugerencia?
Saudos y gracias.
Última edición por Jose_Pérez fecha: 19-05-2005 a las 14:39:47.
|