PDA

Ver la Versión Completa : Borrar,Insertar y Modificar con ClientDataSet en Interbase/Firebird


David
16-06-2007, 19:31:42
Hola

Estoy con Firebird , tengo 2 tablas , Facturas , DetalleFacturas .

En el modulo de datos , tengo 2 TIBQuerys , con esta sentencia .

QFacturas : 'Select campos from Facturas'
QFacturasDetalle 'Select campos from factura where codigoFactura = :Codigo'

Cómo veis tengo un parametro , para que al abrir la tabla , ya tener el detalle de la factura actual.

Tengo asociado a cada TIBQuery (mediante el Provider), un TClientDataSet (ClientFactura y ClientFacturaDetalle ) , entro los dos clientDataSet estan establecidos como maestro detalle , así pues al seleccionar un factura , pues el ClientFacturaDetalle , muestra las lineas correspondientes a esa factura .

Obviamente , cada vez que el ClientDataSet toma los datos , cierra el TIBQuery correspondiente (de esto me he enterado hace poco).

Ahora la pregunta es como se realiza el borrado , inserción y detalle , para que quede registrado en la base de datos . Por que se esta trabajando en caché obviamente .

Decir que obviamente los TIBQuery ,estan ligados a un TIBDataBase y a un TIBTransaction.

Que componentes utilizar y que instrucciones usar , por que no veo la manera .

Obviamente cuando se borra una factura , se tienen que borrar también todos los detalles asociadas a la misma (esto lo quiero hacer por código en Delphi y nunca en la base de datos por integridad referencial)

Un saludo

Fita
16-06-2007, 22:59:38
Para que los cambios vayan a la Base de Datos debes usar
ClientDataset.ApplyUpdates(0)

Saludos