Ver Mensaje Individual
  #2  
Antiguo 23-10-2006
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 295
Reputación: 22
afxe Va por buen camino
Intentémoslo:

Este componente permite indicar al TQuery cómo debe hacer las actualizaciones y se usa junto a la propiedad CacheUpdates del mismo.

Imagina que tienes la siguiente consulta:


Código SQL [-]
SELECT P.CODIGO, P.FECHA, P.IMPORTE, P.COD_CLIENTE, C.NOMBRE_CLIENTE
FROM PAGOS P LEFT JOIN CLIENTES C ON P.COD_CLIENTE = C.COD_CLIENTE
WHERE P.COD_CLIENTE = :Codigo





Con esta consulta traemos los pagos efectuados de un cliente, pero no podemos actuar directamente contra ella para hacer INSERT, UDPATE o DELETE, ya que el BDE no sabrá cómo manejarse.

Poniendo la propiedad CacheUpdate a True y asignando un TUpdateObject puedes definir cómo se debe actualizar los datos:
Para insertar:

Código SQL [-]
INSERT INTO PAGOS (CODIGO, COD_CLIENTE, FECHA, IMPORTE)
VALUES (:CODIGO, :COD_CLIENTE, :FECHA, :IMPORTE)




Para Borrar:

Código SQL [-]
DELETE FROM PAGOS WHERE CODIGO = :CODIGO





e idem para actualizar. Cuando ejecutes sobre el TQuery el método ApplyUpdates se ejecutarán las sentencias SQL apropiadas para cada acción llevada a cabo con cada uno de los registros del TQuery mientras ha estado en Caché.

Como ves, el funcionamiento es muy parecido a lo TIBDataSet de las IBX.

Es muy útil para hacer modificaciones masivas a datos sin que se tengan que ir grabando en la BD hasta que el usuario dé conformidad.

¿Aclarado?
Responder Con Cita