J'ai une table qui est mise à jour par une application. A chaque nouvelle
ligne de cette table, j'ai besoin de lancer une commande qui prend comme
paramètre un champ des champs de cette table.
Comment puis je écrire mon code pour faire référence à ces champs ?
Devrais je plutôt écrire un trigger Update sur ma table ? Dans ce cas, puis
je lancer une appli .exe depuis le code du trigger ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
chalagif
Bon voila, j 'ai trouvé :
Le plus simple est en effet la création d'un trigger avec l'utilisation de xp_shell Voici le code de mon trigger :
CREATE TRIGGER [TR-UpdateNomDuTrigger] ON NomTable FOR INSERT, UPDATE AS
If UPDATE(ChampTable) --si le champ ChampTable de la table NomTable est mis a jour
BEGIN declare @name varchar(25) declare @commande varchar(300) declare @gencr varchar(300) set @name = (select customer from inserted) --on recupere le champ customer de la table pour l injecter dans la commande qui va être lancée apres set @gencr = 'parametres' est crée pour contenir de nombreux paramètres avec de ' et " qui posent problème si on les passe directement avec exec master..xp_cmdshell
set @commande = 'D:VotreExe.exe -f parametres ' +@gencr
END GO ----------------------------------------------- En éspérant être clair.
"chalagif" a écrit :
Bonjour,
J'ai une table qui est mise à jour par une application. A chaque nouvelle ligne de cette table, j'ai besoin de lancer une commande qui prend comme paramètre un champ des champs de cette table.
Comment puis je écrire mon code pour faire référence à ces champs ?
Devrais je plutôt écrire un trigger Update sur ma table ? Dans ce cas, puis je lancer une appli .exe depuis le code du trigger ?
Merci
Bon voila, j 'ai trouvé :
Le plus simple est en effet la création d'un trigger avec l'utilisation de
xp_shell
Voici le code de mon trigger :
CREATE TRIGGER [TR-UpdateNomDuTrigger]
ON NomTable
FOR INSERT, UPDATE
AS
If UPDATE(ChampTable) --si le champ ChampTable de la table NomTable est mis
a jour
BEGIN
declare @name varchar(25)
declare @commande varchar(300)
declare @gencr varchar(300)
set @name = (select customer from inserted) --on recupere le champ customer
de la table pour l injecter dans la commande qui va être lancée apres
set @gencr = 'parametres'
--@gencr est crée pour contenir de nombreux paramètres avec de ' et " qui
posent problème si on les passe directement avec exec master..xp_cmdshell
set @commande = 'D:VotreExe.exe -f parametres ' +@gencr
END
GO
-----------------------------------------------
En éspérant être clair.
"chalagif" a écrit :
Bonjour,
J'ai une table qui est mise à jour par une application. A chaque nouvelle
ligne de cette table, j'ai besoin de lancer une commande qui prend comme
paramètre un champ des champs de cette table.
Comment puis je écrire mon code pour faire référence à ces champs ?
Devrais je plutôt écrire un trigger Update sur ma table ? Dans ce cas, puis
je lancer une appli .exe depuis le code du trigger ?
Le plus simple est en effet la création d'un trigger avec l'utilisation de xp_shell Voici le code de mon trigger :
CREATE TRIGGER [TR-UpdateNomDuTrigger] ON NomTable FOR INSERT, UPDATE AS
If UPDATE(ChampTable) --si le champ ChampTable de la table NomTable est mis a jour
BEGIN declare @name varchar(25) declare @commande varchar(300) declare @gencr varchar(300) set @name = (select customer from inserted) --on recupere le champ customer de la table pour l injecter dans la commande qui va être lancée apres set @gencr = 'parametres' est crée pour contenir de nombreux paramètres avec de ' et " qui posent problème si on les passe directement avec exec master..xp_cmdshell
set @commande = 'D:VotreExe.exe -f parametres ' +@gencr
END GO ----------------------------------------------- En éspérant être clair.
"chalagif" a écrit :
Bonjour,
J'ai une table qui est mise à jour par une application. A chaque nouvelle ligne de cette table, j'ai besoin de lancer une commande qui prend comme paramètre un champ des champs de cette table.
Comment puis je écrire mon code pour faire référence à ces champs ?
Devrais je plutôt écrire un trigger Update sur ma table ? Dans ce cas, puis je lancer une appli .exe depuis le code du trigger ?