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?