[SQL(server)] Executer un DTS dans une transaction

Voilà, j’ai plein de DTS a lancer et evidemment s’il y en a un qui crash il vaut que je fasse un rollback…
quelqu’un sait ou aurait une piste pour me filler un coup de main ?

:jap:

En gros si 1 seul crash il faut que tu rollback tt les DTS???

yep [:matleflou]
et j’a 22 DTS :smiley:

et tous mes DTS sont au format fichier.DTS et faut que je lance la commande sql depuis un vbscript [:matleflou]

faut le faire par VB? tu peux pas utiliser le gestionnaire DTS de Enterprise Manager?

nan :smiley:
c’est une pseudo appli web mais qui tourne en local sur le poste client… enfin a la limite si tu me dis comment lancer en ligne de commande un truc ca me va aussi :smiley:

j’ai trouvé ca : http://www.devx.com/tips/Tip/16240

mais il faudrait que je puisse lancer mes dts dans une transaction…

Salut les Gens,
Un rollback de 22 DTS ?!
J’espère que chaque DTS ne traite pas trop de données !
Ce qu’il faut faire, c’est un DTS principal qui lance les autres et en cas de problème il se charge de faire le rollback ou le commit.
Sinon il est possible de lancer un DTS en ligne de commande, mais par contre je sais plus quelle commande permet ça, c’est un des .exe dans le répertoire de mssql.

http://www.devx.com/tips/Tip/17053

je crois que j’ai trouvé la soluce :love:

merci rara, t’es un amour d’homme musclé :smiley:

Et j’ai pas fait grand chose :slight_smile:

Au faite, avec les hormones de croissance que tu manges, c’est plutot toi l’homme musclé maintenant, non ? :smiley:
Les poils commencent à pousser ? :smiley:

nan je m’epile [:a_n_g_e_l_u_s:6] [:kramoc]

pourquoi ca me fait un success alors que j’ai pas mon Pi.dts sur mon c: ?

[fixed]
DECLARE @ErrorSave INT, @tmpError INT
SELECT @ErrorSave = 0, @tmpError = 0

BEGIN TRANSACTION

–Declaring variable
DECLARE @objdts int

–Creating object
EXEC sp_OACreate ‘DTS.Package’, @objdts OUTPUT

–Loading DTS storage file to object
EXEC sp_OAMethod @objdts, ‘LoadFromStorageFile’, NULL, ‘C:\P1.dts’, ‘’

–Executing DTS package through an object
EXEC sp_OAMethod @objdts, ‘Execute’

SELECT @tmpError = @@ERROR
IF (@tmpError <> 0)
SET @ErrorSave = @tmpError

IF (@ErrorSave = 0)
    BEGIN
        COMMIT TRANSACTION
	print 'success'
    END
ELSE
    BEGIN
        ROLLBACK TRAN
	print 'error P1'
    END

[/fixed]