Όταν έγραφα το ποστ είχα την εντύπωση ότι τα DTS package εξακολουθούσαν να ονομάζονται έτσι και στον SQL 2005. Δουλεύοντας τα στην πορεία ανακάλυψα ότι θα πρέπει να δουλέψω με SSIS. sorry για το μπέρδεμα. Χρησιμοποίησα την shell για να τρέξω dtexec και ενώ φαινόταν να τρέχει κανονικά στην πραγματικότητα δεν έκανε τίποτα και δεν εμφάνειζε και κανένα μήνυμα. Θέλησα να δοκιμάσω και με store procedure.
Δημιούργησα λοιπόν την παρακάτω procedure:
ALTER PROCEDURE dbo.ImportSapTxt
AS
begin
declare @cmd int
exec @cmd=xp_cmdshell 'dtexec /f "c:\Package1.dtsx"'
exec @cmd=xp_cmdshell 'dtexec /f "c:\Package2.dtsx"'
end
και μέσω της Access την καλώ.
Static StrConnImp As Connection
Static RecImp As New ADODB.Recordset
Static Sql As String
Set StrConnImp = New Connection
StrConnImp.ConnectionString = "Driver={SQL Server};Server=HLCTUB001;Database=Test;Trusted_Connection=Yes;"
StrConnImp.Open
Sql = "ImportSapTxt"
RecImp.Open Sql, StrConnImp, adOpenKeyset, adLockOptimistic
StrConnImp.Close
Καλά μέχρι εδώ και το package εκτελείται κανονικά. Εάν εκτελέσω το package μέσω Buisseness Inteligence ο χρόνος ολοκλήρωσης είναι γύρω στα 5 δευτ. Εάν το εκτελέσω μέσω της Access o χρόνος εκτέλεσης αγγίζει το λεπτό. Κάνω κάτι λάθος; Μήπως πρέπει να την καλέσω με διαφορετικό τρόπο;
Ευχαριστώ
Dionisis