Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duda con state de tabla (https://www.clubdelphi.com/foros/showthread.php?t=64150)

Kenobi 19-03-2009 15:40:18

Duda con state de tabla
 
Hola amigos, tiempo sin venir por aca a molestar...
tengo una duda con esto de los states o mejor dicho quiero hacer algo y no se bien como ...procedo a explicar

en mi sistema tengo definido el comportamiento de los botones segun el estado de la tabla,

si esta en dsBrowse puedo modificar, eliminar, no cancelar ni guardar porque para que si estoy en modo de exploracion... .bien tengo un procedure que investiga el state de la tabla para habilitar (y posibilitar) hacer las cosas basicas que se hacen con los registros (editar, agregar,modificar,eliminar,cancelar) ahora bien la duda es la siguientel, en el guardar tengo algo asi

Código Delphi [-]
if tabla.state in [dsEdit,dsInsert] then tabla.post
esto funciona, sin embargo muchas veces a pesar de que activamos el edit en una tabla, la verdad no hicimos cambios en el registro y despreocupadamente le damos guardar y en efecto guarda (lo mismo que teniamos) pues bien me gustaria que el post solo se ejecutara si en efecto
tabla.edit y modifique algo....

digo yo si no modifique nada para que voy a guardar ...lo que estoy buscando un state que me si se modifico algo claro esta que esto se puede hacer por otra via pero la idea es la menor cantidad de codigo (no por flojera mas bien eficiencia del codigo)

Gracias espero que se entienda la pregunta....

Al González 19-03-2009 19:53:25

¡Hola!

Para ello puedes agregar la propiedad Modified:
Código Delphi [-]
If (Tabla.State In dsEditModes) And Tabla.Modified Then
  Tabla.Post;

Aunque esto no te salvará de los casos donde a un campo se le asigne el mismo valor que ya tenía (naturaleza del TDataSet nativo). ;)

Saludos.

Al González. :)


La franja horaria es GMT +2. Ahora son las 11:38:24.

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