Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Ver Resultados de Encuesta: ¿Cuál valor predeterminado (default) prefieres para la propiedad ImmediateUpdates?
False (se usaría más así) 5 71,43%
True (se usaría más así) 2 28,57%
Votantes: 7. Tú no puedes votar en esta encuesta

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 13-04-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile ImmediateUpdates y StoreActive

¡Hola a todos!

Antes que nada, gracias por sus valiosos comentarios.


Cita:
Empezado por amadis
VOTO POR EL TRUE.

Ya que hace unos dias publique un hilo CLIENTDATASET vs TTABLE

Y eso creo que solucionaria el problema que he estado teniendo... de reflejar los cambios inmediatamente.

El que no lo quiere que siga con el ClientDataSet tradicional
...
He decidido que el valor predeterminado sea False (ya voté por la primera opción). Abrí la encuesta porque tenía dudas al respecto, pero me convenció el argumento de Román. La intención de este nuevo componente es ampliar las capacidades de un TClientDataSet, no pelearse con éste. La naturaleza de un conjunto de datos cliente es permitir el manejo de registros en memoria (en caché), aplicando los cambios a la base de datos hasta llegar el momento "adecuado", reduciendo así el tráfico de red.

En mi proyecto actual tengo un módulo de datos con varias decenas de este nuevo componente y, por razones particulares de esta aplicación, pondré la propiedad ImmediateUpdates de todos ellos en True (es un trabajo menor, comparado con el de utilizar los eventos AfterDelete y AfterPost de cada componente). Es muy probable que yo mismo y otros programadores hagan esto en otros proyectos, ya que muchos desarrolladores Delphi preferimos que los cambios se envíen a la base de datos lo más pronto posible (por todas las ventajas de lectura, validación, etc., que ya conocemos). Sin embargo, esta manera de usar la propiedad ImmediateUpdates, aunque puede llegar a ser una "regla cultural", sigue siendo una "excepción natural" (excepción a la naturaleza de un conjunto de datos en memoria).

En todo caso, para facilitar aún más el trabajo, quizá después cree una clase de módulo de datos que tenga una propiedad DefaultDataSetSettings —o un componente por el estilo—, donde el programador pueda establecer de forma centralizada cuáles son sus preferencias predeterminadas para todos conjuntos de datos que se coloquen dentro del módulo.


Cita:
Empezado por amadis
...este ImmediateUpdates ¿seria un ApplyUpdates y un Refresh juntos?...
No, solamente la llamada al método ApplyUpdates.
Código Delphi [-]
  Procedure TMagiaClientDataSet.DoAfterDelete;
  Begin
    If ImmediateUpdates Then
      ApplyUpdates (0);

    Inherited DoAfterDelete;
  End;

  Procedure TMagiaClientDataSet.DoAfterPost;
  Begin
    If ImmediateUpdates Then
      ApplyUpdates (0);

    Inherited DoAfterPost;
  End;


Cita:
Empezado por amadis
...En cuanto al StoreActive desconozco su utilidad y buscando en la ayuda de delphi no entendí mucho mas de lo que desconozco así que les agradeceria una ayuda sobre eso...
Cuando tienes StoreActive en False (el valor predeterminado), el valor de la propiedad Active no se guardará en el archivo .dfm, el archivo donde se almacena todo lo que estableces en tiempo de diseño —generalmente usando el inspector de objetos—. Esto quiere decir que si abres un conjunto de datos en tiempo de diseño para facilitar la labor de delinear un DBGrid, por ejemplo, enseguida puedes compilar el programa y al correrlo no abrirá automáticamente ese conjunto de datos; la tendencia hoy en día (y lo que señalan los cánones) es que el programa abra los conjuntos de datos por orden explícita, sólo en el momento en que se requieran, para ahorrar recursos y operar con una velocidad óptima.

Así mismo, cuando vuelvas a abrir el proyecto en Delphi, los módulos de datos no demorarán en cargarse, ya que no tratarán de abrir los conjuntos de datos que hayas dejado con las propiedades Active en True y StoreActive en False. En pocas palabras, StoreActive concilia la tendencia de conjuntos de datos cerrados con la necesidad de abrirlos para diseñar.


Un abrazo activo.

Al González.

Última edición por Al González fecha: 13-04-2006 a las 21:54:48.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TClientDataset Uso samantha jones Varios 1 09-03-2005 21:22:20
TClientDataSet carlomagno Firebird e Interbase 0 09-09-2004 11:29:23
TClientDataSet xml carlomagno Firebird e Interbase 0 03-09-2004 11:32:25
TClientDataSet y el SO tgsistemas OOP 4 02-08-2004 15:01:20
TClientDataSet saul_montalvo Conexión con bases de datos 1 08-09-2003 04:38:10


La franja horaria es GMT +2. Ahora son las 18:00:48.


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