¡Hola a todos!
¿A poco no sería fabuloso que el componente TClientDataSet tuviese una propiedad llamada
ImmediateUpdates, para indicar cuándo queremos que se apliquen los cambios (
ApplyUpdates) a la base de datos de manera inmediata?.
Muchos programadores Delphi recurrimos al uso de los eventos
AfterPost y
AfterDelete del conjunto de datos cliente, para llamar desde ahí al método
ApplyUpdates cuando queremos que la base de datos se actualice immediatamente después de guardar o eliminar un registro. Pero cuando tenemos un módulo de datos con treinta o cuarenta componentes TClientDataSet la cosa se torna fea (demasiado trabajo repetitivo por falta de una propiedad como la mencionada).
Hace días que vengo utilizando mi propio componente derivado:
TMagiaClientDataSet, al cual le voy agregando características según descubro las carencias de su clase padre (TClientDataSet). Le definí una propiedad
Provider que permite enlazarlo con un proveedor que se encuentre en otro módulo de datos de la misma aplicación; también una propiedad
StoreActive que evita (si se quiere) que se guarde la propiedad Active en el archivo .dfm.
Ahora he decidido definirle una nueva propiedad llamada
ImmediateUpdates. La idea es sencilla: que si esta propiedad tiene un valor de True, se llame de manera automática al método ApplyUpdates después de cada operación de guardado o eliminación de registro. Eso ayudaría a reducir código y trabajo de programación operativa (el
burocrático uso de los eventos AfterPost y AfterDelete de cada conjunto de datos).
La principal razón de este mensaje es preguntar a los conocedores del tema,
cuál valor debería ser el predeterminado (default) para esta nueva propiedad, ¿True o False?. En términos prácticos, ¿cuál se estaría usando más por los programadores Delphi que emplearan este nuevo componente?, ¿ImmediateUpdates = False?, o ¿ImmediateUpdates = True?, ¿por qué?
Muchas gracias por participar en la encuesta y exponer sus opiniones sobre este tema.
Un abrazo aplicado.
Al González.