Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2005
jollodel jollodel is offline
Miembro
 
Registrado: jul 2004
Posts: 22
Poder: 0
jollodel Va por buen camino
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!
Responder Con Cita
  #2  
Antiguo 27-04-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 28-04-2005
jollodel jollodel is offline
Miembro
 
Registrado: jul 2004
Posts: 22
Poder: 0
jollodel Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 28-04-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
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.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:13:27.


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
Copyright 1996-2007 Club Delphi