PDA

Ver la Versión Completa : TIBClientDataSet, como funciona?


pinoxito
20-11-2003, 19:28:11
Hola estoy intentando hacer una aplicacion con los componentes TIBClientDataSet, y hasta ahora logro cargar bien los datos desde la propiedad commandtext:

------------------- command text -------------------------------------
select
a.ejercicio, a.CODASU,
a.CODCLI, a.CODFACEJE,
a.CODTIP, pob.nombre as nompob,
prov.nombre as nomprov,
t.nombre as nomtip, tg.nombre as nomgru

from asunto a, poblacion pob, provincia prov, asuntotipo t,
asuntogrupo tg, cliente c

where

c.codcli = a.codcli and
c.codpob = pob.codpob and
pob.codprv = prov.codprv and
t.codtip = a.codtip and
tg.codgru = t.codgru and
a.ejercicio = :ejercicio and
a.codasu = :codasu
------------------- fin command text -------------------------------------

Pero el problema viene a la hora de aplicar los cambios sobre la tabla "asunto", utilizo el siguiente código para grabar los cambios:

-----------------------------------------------------------------
if not IBT.InTransaction then IBT.StartTransaction;

Asunto.post;
Asunto.ApplyUpdates(0);
-----------------------------------------------------------------


esto es suficiente? Porque no me hace nada. Tambien me han dicho que los campos que no se van a actualizar de la consulta de command text tengo que poner las propiedades de providerflags todas a false, y Asunto(TIBClientDataSet) debe tener su propiedad UpdateMode = upWhereKeyOnly, voy por buen camino?


Estoy perdido con esto, y no encuentro ejemplos por ninguna parte.

:confused:

Osorio
23-11-2003, 05:26:06
Hola,

La verdad no estoy seguro que el ClientDataset sirva para hacer actualizaciones, lo que te recomiento es que lo uses para consultar datos en la tablas y que las inserciones, actualizaciones y eliminaciones las realices a traves de un TIBStoredProc o un TIBUpdateSQL.

Suerte...

mosorio
24-11-2003, 18:58:41
Hola!
Aclaro una cosa, el ClientDataSet sí es para efectuar las respectivas inserciones y/o modificaciones en una tabla, lo que no estoy seguro es que esn esa select que has efectuado donde intervienen diferentes tablas te permita hacer la actualización en la tabla que deseas. Hasta ahora personalmente cuando utilizo los cds y necesito hacer modificaciones o inserciones, sólo para una sola tabla, es decir si tomas:

select * from asunto

El mismo cds se encarga, creo, no recuerdo muy bien la teoría de crear las instrucciones para las inserciones, modificaiones, etc. através del proveedor y toda la carreta necesaria para esto.
Si necesitas ver la consulta que haces, te sugiero que crees una consulta con otro componente que sea solo para mostrar esta y con el cds efectues las inserciones, creo que puedes encontrar diversas ormas de hacerlo, la idea básica te la he dado.

Saludos