Ver Mensaje Individual
  #4  
Antiguo 02-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola.

Yo lo que hago es clonar el clientdataset en cada formulario. Es decir, en el datamodule dejas el query + provider + clientdataset, y lo abres.

Al cargar un formulario clonas el clientdataset del datamodule, sobre un clientdataset local al formulario :

cdsLocal.CloneCursor(dmData.cdsCompartido, True);

Ahora el cdsLocal contiene los mismos datos que el cdsCompartido, pero cuando te muevas sobre sus registros, no te moverás en el cdsCompartido. (Aunque si añades o modificas registros, estos cambios si que aparecerán en el otro clientdataset).

NOTA : Lo bueno de este sistema es que los datos solo se consultan una vez en la base de datos (en cambio con tu sistema actual, cada vez que abres el formulario se vuelven a cargar los datos via el query del datamodule), y los datos se mantienen sincronizados si haces cambios en cualquiera de los clientdatasets clonados.

El problema, es que tendrás que añadir clientdataset y datasources en los formularios. Por cierto si necesitas tener los campos persistentes, puedes siemplemente copiar el clientdataset del datamodule sobre el formulario (con lo que se copian los campos). o entrar en la lista del fields editor del clientdataset del datamodule, seleccionar todos los campos y Ctrl-C, te vas al fields editor del clientdataset local, y los podrás pegar sin problemas.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita