Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Detectar fila sin grabar (https://www.clubdelphi.com/foros/showthread.php?t=83558)

Parsec 30-06-2013 09:10:11

Detectar fila sin grabar
 
Hola a tod@s,

si yo realizo cambios en las celdas de un dbgrid no actualiza la tabla hasta que cambio de fila y al principio de la fila muestra el siguiente símbolo:


Cuando ya se ha realizado la grabación, muestra este símbolo al principio de la fila:


¿Cómo puedo saber en que estado se encuentra?, si falta por actualizar (1ª imagen) o si ya se ha actualizado (2ª imagen).

Saludos

Casimiro Notevi 30-06-2013 10:12:27

dsState, puede ser dsInsert, dsEdit, dsBrowse, etc.
Mira la ayuda de delphi o el magnífico libro de Ian Marteens, La cara oculta de Delphi.

Parsec 30-06-2013 12:04:38

Muchas gracias,

solucionado, escribo con detalle el código por si alguien lo necesita:

Código Delphi [-]
if dBGRID2.DataSource.DataSet.State = Dsedit then
       Showmessage('Edición'); // Se ha realizado un cambio en el dbgrid y no está grabado todavía
     if dBGRID2.DataSource.DataSet.State = Dsbrowse then
       Showmessage('Recorriendo');// Una vez grabado el dato el dbgrid vuelve a este estado.

Saludos

ecfisa 30-06-2013 20:16:43

Hola Parsec.

Primero que nada gracias por publicar como lo solucionaste ;)

Otra opción es usando RTTI, ejemplo:
Código Delphi [-]
...
uses TypInfo;

...
begin
  with DBGrid2.DataSource do
    ShowMessage(GetEnumName(TypeInfo(TDataSetState), Ord(DataSet.State)));
end;

Saludos :)

Parsec 08-07-2013 18:32:39

Gracias Ecfisa, voy a probarlo.

Saludos

gandalf_uy 30-09-2015 14:00:33

Hola!

Estoy buscando una forma de solucionar algo parecido a lo que plantean en este hilo.

Tengo una DbGrid asociada a una TTable. Los campos booleans los muestro con un checkbox. Al presionar sobre uno de ellos, cambia su valor, pero el registro no se me actualiza. Como quien dice queda en modo edición y solo se actualiza si el usuario se mueve de registro. Lo que me sucede a veces es que el usuario al ver que está el checkbox cambiado, piensa que ya hizo la modificación y cierra el form. Por ende, quisiera saber alguna manera de forzar que inmediatamente que se clickea el checkbox, el mismo automáticamente actualice la tTable sin necesidad de que tenga que moverse de registro el usuario.

Alguna sugerencia?

Mil gracias!

ecfisa 30-09-2015 15:05:43

Hola gandalf_uy.Saludos :)


La franja horaria es GMT +2. Ahora son las 04:09:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi