Kako u okviru trigger-a izvrsiti package?
Trigger i package....
Zaključano
Zakačeno
Ako mislis na dts-package, najjednostavnije je da kreiras job koji izvrsava dts package i iz trigger-a pozoves sp_start_job.
Job koji poziva dts mozes da kreiras rucno ili iz Enterprise-a desni klik na package > schedule job kreira job sa istim imenom kao i package.
Postoje i drugi nacini: pozivanje direktno (bez job-a), ali nije bas jednostavno ili pozivanjem eksternog dtsrun.exe
Job koji poziva dts mozes da kreiras rucno ili iz Enterprise-a desni klik na package > schedule job kreira job sa istim imenom kao i package.
Postoje i drugi nacini: pozivanje direktno (bez job-a), ali nije bas jednostavno ili pozivanjem eksternog dtsrun.exe
da...u pitanju je DTS package...
probala sam da ubacim ovo u trigger:
DECLARE @hr INT, @oPKG INT, @Cmd VARCHAR(1000), @RetVal INT
DECLARE @PkgName varchar(256)
set @PkgName = "DTS1"
EXECUTE @hr = sp_OACreate 'DTS.Package', @oPKG OUT
IF @hr <> 0
BEGIN
PRINT ' ** Create Package Object Failed **'
PRINT ''
EXEC sp_OAGetErrorInfo @oPKG, @hr
RETURN
END
SET @Cmd = 'LoadFromSQLServer("(local)" ,"sa" ,"sa" ,0 , , , ,"' + @PkgName + '")'
EXEC @hr = sp_OAMethod @oPKG, @Cmd, NULL
IF @hr <> 0
BEGIN
PRINT ' ** Load Package Failed **'
PRINT ''
EXEC sp_OAGetErrorInfo @oPKG, @hr
RETURN
END
EXEC @hr = sp_OAMethod @oPKG, 'Execute'
PRINT @PkgName
PRINT @RetVal
IF @hr <> 0
BEGIN
PRINT ' ** Execute Package Failed **'
EXEC sp_OAGetErrorInfo @oPKG, @hr
--RETURN
END
ELSE
PRINT ' ** Execute Package Succeeded **'
EXEC @hr = sp_OADestroy @oPKG
IF @hr <> 0
BEGIN
PRINT ' ** Destroy Package Failed **'
EXEC sp_OAGetErrorInfo @oPKG, @hr
RETURN
END
Kada se okine trigger jednostavno zablokira i ne uradi nista, ali iz SP radi bez problema. Ima li neko pojma zasto?
probala sam da ubacim ovo u trigger:
DECLARE @hr INT, @oPKG INT, @Cmd VARCHAR(1000), @RetVal INT
DECLARE @PkgName varchar(256)
set @PkgName = "DTS1"
EXECUTE @hr = sp_OACreate 'DTS.Package', @oPKG OUT
IF @hr <> 0
BEGIN
PRINT ' ** Create Package Object Failed **'
PRINT ''
EXEC sp_OAGetErrorInfo @oPKG, @hr
RETURN
END
SET @Cmd = 'LoadFromSQLServer("(local)" ,"sa" ,"sa" ,0 , , , ,"' + @PkgName + '")'
EXEC @hr = sp_OAMethod @oPKG, @Cmd, NULL
IF @hr <> 0
BEGIN
PRINT ' ** Load Package Failed **'
PRINT ''
EXEC sp_OAGetErrorInfo @oPKG, @hr
RETURN
END
EXEC @hr = sp_OAMethod @oPKG, 'Execute'
PRINT @PkgName
PRINT @RetVal
IF @hr <> 0
BEGIN
PRINT ' ** Execute Package Failed **'
EXEC sp_OAGetErrorInfo @oPKG, @hr
--RETURN
END
ELSE
PRINT ' ** Execute Package Succeeded **'
EXEC @hr = sp_OADestroy @oPKG
IF @hr <> 0
BEGIN
PRINT ' ** Destroy Package Failed **'
EXEC sp_OAGetErrorInfo @oPKG, @hr
RETURN
END
Kada se okine trigger jednostavno zablokira i ne uradi nista, ali iz SP radi bez problema. Ima li neko pojma zasto?
btw. isto se desava i ako iz triggera pozovem SP...
izmenjeno 2 puta, poslednji put mmelanny 05.05.2006. u 16:44
Izmene poruke
- mmelanny05.05.2006. u 16:44zapis iz teksta poruke
- mmelanny05.05.2006. u 16:27zapis iz teksta poruke
ok...napravila sam job od DTS-a i to radi...
ali ja bih ako neko zna da mi razresi ovu misteriju oko pozivanja package-a direktno iz trigger-a...thanks unapred
ali ja bih ako neko zna da mi razresi ovu misteriju oko pozivanja package-a direktno iz trigger-a...thanks unapred