Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Εκτέλεση DTS Package μέσα από ΜS Access..

Îåêßíçóå áðü ôï ìÝëïò neoklis. Τελευταία δημοσίευση από το μέλος neoklis στις 17-03-2008, 11:03. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  06-03-2008, 18:04 40755

    Εκτέλεση DTS Package μέσα από ΜS Access..

    Παιδιά γειά σας και πάλι..

    Ψάχνω να βρω τρόπο να εκτελεστεί ένα DTS package (SQL) μέσω της MS Access. Μήπως ψάχνω άδικα γιατί δεν είμαι σίγουρος και για το αν υπάρχει..

     

     

    Ευχαριστώ


    Dionisis
  •  06-03-2008, 20:10 40757 σε απάντηση της 40755

    Απ: Εκτέλεση DTS Package μέσα από ΜS Access..

    Ένας τρόπος είναι μέσω του DTSRUN.EXE. Άλλος τρόπος είναι να αποθηκεύσεις το πακέτο ως VB κώδικα, να το φορτώσεις σε ένα module στην Access, να βάλεις reference στο Microsoft DTSPackage Object Library και να το τρέξεις μέσα από VBA. Ρίξε μια ματιά για τρόπους εκτέλεσης εδώ: http://www.sqldts.com/104.aspx


    Vir prudens non contra ventum mingit
  •  07-03-2008, 12:27 40766 σε απάντηση της 40757

    Απ: Εκτέλεση DTS Package μέσα από ΜS Access..

    Ευχαριστώ Kelman. Πολύ ωραίο το link που με παρέπεμψες.. και πάλι ευχαριστώ.
    Dionisis
  •  12-03-2008, 15:43 40820 σε απάντηση της 40766

    Απ: Εκτέλεση DTS Package μέσα από ΜS Access..

    Δημιούργησα ένα SSIS package το οποίο εκτελείτε με επιτυχία. Δεν έχω καταφέρει να το τρέξω μέσα από την Access. Έβαλα reference στο Microsoft DTSPackage Object Library και on click σε ένα button το παρακάτω κομμάτι κώδικα.

     

    Dim oPKG As New DTS.Package

    oPKG.LoadFromSQLServer "HLCTUB001", , , _

        DTSSQLStgFlag_UseTrustedConnection, , , , "Package1"

       

    oPKG.Execute

    oPKG.UnInitialize

    Set oPKG = Nothing

     

    Εκτελώντας το μου εμφανίζει το παρακάτω error

     

    The specified DTS Package(‘Name=’Package1’;ID.VersionID={[not specified]}.{[not specified]}’) does not exist

     

     


    Dionisis
  •  13-03-2008, 14:40 40833 σε απάντηση της 40820

    Απ: Εκτέλεση DTS Package μέσα από ΜS Access..

    Δεν κατάλαβα, πρόκειται για DTS Package (SQL Server 7/2000) ή SSIS Package (SQL Server 2005);

    Αν μιλάμε για SSIS Package, τότε εδώ http://msdn2.microsoft.com/en-us/library/ms141708.aspx αναφέρονται οι τρόποι που μπορείς να το τρέξεις. Επίσης, μπορείς να το τρέξεις προγραμματιστικά μέσω .NET Framework (βλ Microsoft.SqlServer.Dts namespace). Υποθέτω, μέσα από την Access μπορείς να χρησιμοποιήσεις τη Shell για να τρέξεις τo dtexec.exe


    Vir prudens non contra ventum mingit
  •  14-03-2008, 13:45 40846 σε απάντηση της 40833

    Απ: Εκτέλεση DTS Package μέσα από ΜS Access..

    Όταν έγραφα το ποστ είχα την εντύπωση ότι τα 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
  •  14-03-2008, 17:11 40860 σε απάντηση της 40846

    Απ: Εκτέλεση DTS Package μέσα από ΜS Access..

    Με αυτόν τον κώδικα στην Access τρέχεις τη stored procedure αλλά δηλώνεις ότι περιμένεις πίσω εγγραφές (πράγμα που σημαίνει ότι ανοίγει cursors, βάζει locks και ένα σωρό άλλα πράγματα). Υποθέτω γι αυτό καθυστερεί. Δες εδώ http://support.microsoft.com/kb/185125 το σωστό τρόπο. Ωστόσο, μπορείς αυτό το dtexec που κάνεις μέσα από τη stored procedure να το κάνεις μέσα από την Access χρησιμοποιώντας τη Shell, οπότε να γλυτώσεις τη stored procedure.


    Vir prudens non contra ventum mingit
  •  17-03-2008, 11:03 40913 σε απάντηση της 40860

    Απ: Εκτέλεση DTS Package μέσα από ΜS Access..

    Έκανα την αλλαγή στον τρόπο που καλώ την store procedure και δυστυχώς ο χρόνος εκτέλεσης βελτιώθηκε ελάχιστα για να μην πω καθόλου. Δοκίμασα και με την Shell να εκτελέσω το dtexec και το αποτέλεσμα ήταν το ίδιο για να μην πω χειρότερο..  Παρατήρησα ότι αργεί πολύ να εκινήσει τα package. Δοκίμασα να εκτελέσω μέσω της dtexec ένα package local στον server και ο χρόνος εκτέλεσης ήταν μόλις λίγα δευτερόλεπτα.

     

    Εκτός λοιπόν από τον πολύ μεγάλο χρόνο εκτέλεσης που απαιτείται από απομακρυσμένο μηχάνημα, κάποιες φορές μου έβγαλε μήνυμα λάθους “time out expired”. Ψάχνοντας στο διαδύκτιο βρήκα το εξής. 

     

    http://www.cubido.at/Blog/tabid/176/EntryID/20/Default.aspx

     

    Δεν το έχω δοκιμάσει ακόμα καθώς απαιτεί επανεκίνηση server. Είναι πιθανόν όμως να ευθύνεται το CLR;

     

    Σε ευχαριστώ πολύ για τον χρόνο που μου έχεις διαθέσει.


    Dionisis
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems