IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Exécuter des Lot DTS depuis VB.net


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut Exécuter des Lot DTS depuis VB.net
    Bonjour,

    Je suis en stage et je dois implémenter un petit service pour un Framework propre à l'entreprise ou je travail. Ce service aura pour but d'exécuter des lots DTS depuis du code VB.net.

    Je ne connais pas très bien le fonctionnement des lot DTS mais j'ai trouvé dans la faq developpez.com cette solution:

    Private Sub RunDTS(ByVal servername As String, ByVal username As String, ByVal serverpassword As String, ByVal dtsname As String)

    Dim package As New Package
    package.LoadFromSQLServer(servername, username, serverpassword, DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, , , , dtsname)

    package.Execute()

    End Sub


    Par contre ma question est:
    Est ce qu'à l'exécution des les lot DTS ceux ci peuvent renvoyer des résultats? Et dans ce cas comment récupérer ces résultats?

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Il n'a a pas de retour de DTS, sauf peut-être une simple valeur de retour de l'exécutable. Par contre, tu peux te faire une table de log et écrire dedans
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par sarah38
    Bonjour,

    Private Sub RunDTS(ByVal servername As String, ByVal username As String, ByVal serverpassword As String, ByVal dtsname As String)

    Dim package As New Package
    package.LoadFromSQLServer(servername, username, serverpassword, DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, , , , dtsname)

    package.Execute()

    End Sub


    Y a-t-il un moyen de savoir si mon "package.Execute()" a bien réussit?
    Comme ça dans le cas contraire je pourrais prévenir l'utilisateur que l'exécution a échoué.

    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    regarde de ce côté, tu devrais trouver ta réponse :

    http://support.microsoft.com/?scid=k...3685&x=11&y=15
    Emmanuel T.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par kagemaru
    regarde de ce côté, tu devrais trouver ta réponse :

    http://support.microsoft.com/?scid=k...3685&x=11&y=15
    merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut Comment passer des paramètres au lot DTS ?
    Salut,

    Ok maintenant je sais charger un lot DTS puis l'exécuter tout ça depuis du code VB.net mais seulement si le lot DTS ne prend pas de paramètres en entrée.


    Quelqu'un saurait il s'il y a moyen de passer des paramètres à mon lot DTS avant de l'exécuter et toujours en passant per du code VB.net ?

    Merci pour vos futures réponses.


    Sarah.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    cf
    http://support.microsoft.com/default...242391&sd=tech

    MS conseille d'utiliser un fichier txt dans lequel tu places tes params et que liras dans une des premières tâche de ton lot.
    Emmanuel T.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par sarah38
    Y a-t-il un moyen de savoir si mon "package.Execute()" a bien réussit?
    Comme ça dans le cas contraire je pourrais prévenir l'utilisateur que l'exécution a échoué.

    Merci


    Est ce que cette erreure vous dit quelque chose ?

    "Package failed because Step 'DTSStep_DTSExecuteSQLTask' failed."

    J'arrive pas à la résoudre.


    Code:

    Private Sub RunDTS(ByVal servername As String, ByVal username As String, ByVal serverpassword As String, ByVal dtsname As String)

    Dim package As New Package2
    package.LoadFromSQLServer(servername, username, serverpassword, DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, , , , dtsname)

    package.FailOnError = True
    package.execute()
    end Sub

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par sarah38
    Est ce que cette erreure vous dit quelque chose ?

    "Package failed because Step 'DTSStep_DTSExecuteSQLTask' failed."

    J'arrive pas à la résoudre.


    Code:

    Private Sub RunDTS(ByVal servername As String, ByVal username As String, ByVal serverpassword As String, ByVal dtsname As String)

    Dim package As New Package2
    package.LoadFromSQLServer(servername, username, serverpassword, DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, , , , dtsname)

    package.FailOnError = True
    package.execute()
    end Sub

    Je me demande si cette erreur ne vient pas d'une autre erreur avant celle-ci.

    en fait quand je met DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection au lieu de DTSSQLServerStorageFlags.DTSSQLStgFlag_Default

    j'ai l'erreure suivante qui se produit:

    Not associated with a trusted SQL Server connection


    Si quelqu'un sait pour quoi ça me sort cette dérnière erreur ...

    Peut être que ça va m'aider à résoudre la seconde.

    Please ça fait trop longtemps que je bloque

    Merci.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Not associated with a trusted SQL Server connection
    signifie que le compte que tu utilises pour te connecter au SQL Server pour lancer le package (...username, serverpassword..) est invalide (non enregistré au niveau du SQL Server).
    Quel type d'authentification utilises-tu ? windows ou mixte ?
    Emmanuel T.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par kagemaru
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Not associated with a trusted SQL Server connection
    signifie que le compte que tu utilises pour te connecter au SQL Server pour lancer le package (...username, serverpassword..) est invalide (non enregistré au niveau du SQL Server).
    Quel type d'authentification utilises-tu ? windows ou mixte ?

    L’authentification que j'utilise est de type mixte c'est à dire "SQL server and Windows".

    Le username est le mot de passe sont ceux de mon entreprise et apparemment tout le monde utilisent les mêmes.

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    est-ce qu'il est défini au niveau du SQL Server (dossier Sécurité) ?
    Emmanuel T.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par kagemaru
    est-ce qu'il est défini au niveau du SQL Server (dossier Sécurité) ?
    Oui

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    si tu utilises le flag DTSSQLStgFlag_UseTrustedConnection, il ne faut pas préciser le username / serverpassword puisque le compte Windows d'exécution du package est utilisé comme contexte de sécurité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     package.LoadFromSQLServer(servername, "", "", DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, , , , dtsname)
    Emmanuel T.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par kagemaru
    si tu utilises le flag DTSSQLStgFlag_UseTrustedConnection, il ne faut pas préciser le username / serverpassword puisque le compte Windows d'exécution du package est utilisé comme contexte de sécurité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     package.LoadFromSQLServer(servername, "", "", DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, , , , dtsname)
    Merci pour ces réponses mais ça ne marche toujours pas.

    J'appelle le package.LoadFromSQLServer depuis une fonction

    j'ai essayé tout les cas de figures et voilà ce que j'obtiens.

    1) package.LoadFromSQLServer(servername, username, serverpassword, DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, , , , dtsname)

    message d'érreur:

    "DTSStep_DTSExecuteSQLTask_2" FailedError: -2147467259

    Source: Microsoft OLE DB Provider for SQL ServerDescription: Login failed for user '(null)'.
    Reason: Not associated with a trusted SQL Server connection."



    2)package.LoadFromSQLServer(servername, "", "", DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, , , , dtsname) ou

    package.LoadFromSQLServer(servername, "", "", DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, , , , dtsname)
    ou alors

    package..LoadFromSQLServer(servername, servername, username, DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, , , , dtsname)


    ça ne génère pas d'excéption par contre ça n'exécute ni le lot DTS les instructions qui suivent l'instruction package.LoadFromSQLServer

    et ça sort directement dans le code de la fonction appelante.


    voilà. en tout cas moi je sais plus.

Discussions similaires

  1. Automatisation d'exécution des Lots DTS
    Par w.elassaad dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/06/2011, 13h13
  2. Logs des lots DTS
    Par usf70 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/06/2006, 17h31
  3. Récupération des lots dts et des travaux
    Par laurentabj dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/08/2005, 11h20
  4. HELP : Migrer des lots DTS d'un serveur à un autre
    Par heloise31 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/08/2005, 13h59
  5. [DTS] exécuter un lot DTS depuis T-SQL (sp_OAMethod)
    Par Yann dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/11/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo