PDA

Ver la Versión Completa : Estado Dataset


vtdeleon
30-05-2005, 03:26:07
Saludos
Utilizo Firebird y D7procedure Tfrmprincipal.btnAbrirClick(Sender: TObject);
begin
DMDB.DBUsuario.Open;
end;

procedure Tfrmprincipal.btnEliminarClick(Sender: TObject);
begin
DMDB.DBUsuario.Delete;
end;

procedure Tfrmprincipal.btnStatusClick(Sender: TObject);
begin
if DMDB.DBUsuario.UpdateStatus=usDeleted then
ShowMessage('borrado');
end;El codigo anterior lo estoy usando de prueba. La propiedad CacheUpdates esta activado.
Abro la tabla, elimino registros y verifico si se ha borrado algo en la tabla y no funciona. Si modifico o inserto registros si me funciona (claro modificando usdeleted por usmodified o usinserted). Que hace falta?

jachguate
30-05-2005, 17:04:35
De la ayuda de delphi:

Call UpdateStatus to determine the update status for the current record in a dataset when cached updates are enabled. Update status can change frequently as records are edited, inserted, or deleted. UpdateStatus offers a convenient method for applications to assess the current status before undertaking or completing operations that depend on the update status of individual records in the dataset.

He resaltado el hecho de que es del registro actual, pero cuando borras un registro, el puntero de registro actual pasa normalemente aa otro registro (que no esté borrado).

Si queres poder posicionarte en los registros borrados, asegurate de incluir [rtDeleted] en la propiedad UpdateRecordTypes de tu dataset.

Hasta luego.

;)

RicardoNavarro
18-04-2007, 02:14:45
Para Delphi 7

Hay que usar

UpdateRecordTypes := [cusDeleted, cusModified, cusInserted, cusUninserted, cusUnmodified];