Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Forzar envio a DB (https://www.clubdelphi.com/foros/showthread.php?t=20839)

jollodel 27-04-2005 13:44:14

Forzar envio a DB
 
Hola a todos!!

Tengo una duda q espero q me podais resolver! Dispongo de un TSQLTable unido a un Provider en un Modulo de Datos y un ClientDataSet ligado al Provider!! Mi problema es q kiero q se dispare un trigger de la base de datos siempre que haga applyupdates sobre el ClientDataSet en cuestion! Tal y como esta ahora solo se dispara el trigger si hago un algo cambio en los datos del clientdataset, pero me gustaria q se disparara aunq no hubiese ningun cambio!!

Alguna idea? Se q debe ser alguna tonteria pero no doy con la solucion!!

Un saludo y maxas gracias!

delphi.com.ar 27-04-2005 14:41:57

Una forma prolija puede ser sacar el código del trigger y ponerlo en un store procedure, y que el trigger llame al store procedure y cuando quieras disparar este store procedure simplemente lo ejecutas. Obviamente no todo los triggers son portables a stores procedures, algo mas desprolijo que se me ocurre es hacer un update que no cambie datos (obviamente si el trigger evaluamos los cambios, no servirá de nada) :

Código SQL [-]
UPDATE TABLA
SET CAMPO = CAMPO
WHERE ID = :ID

Saludos!

jollodel 28-04-2005 09:51:14

Alguna otra idea?
 
Entiendo lo q me dices pero no me parece una solucion muy "elegante"!! Al parecer si el cliente detecta q no ha habido ningun cambio no envia los datos a la base de datos! Hay alguna opcion en el provider q deba activar para q los datos sean siempre enviados a la base de datos? Y de sta manera sea la base de datos kien maneje la informacion a traves del disparador.

No se si me he explicado con claridad, pero si alguien puede hecharme una cable staria muy agradecido!!

Chauuu

__hector 28-04-2005 14:47:51

No, y creo que tienes un error de diseño en tu aplicación. Un trigger esta supuesto a ejecutarse despues de una insercion, actualizacion o borrado de datos. Si ninguno de esos eventos sucede en el dataset, el trigger no tendria por que dispararse.

Yo tu y voy pensando en sacar codigo del trigger y ponerlo en otro sitio (SP o Function) porque, aunque de funcionar funciona, definitivamete no es la forma correcta de hacerlo.


La franja horaria es GMT +2. Ahora son las 04:24:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi