2010-03-30 4 views
0

Est-il possible d'exécuter un package SQL dtsx à partir d'une application Windows 2005 VB?Comment exécuter le package SSIS à partir de l'application Windows VB.NET?

Si oui, quelqu'un peut-il me montrer comment ou m'envoyer un lien?
J'ai suivi les instructions à: http://www.bigresource.com/Tracker/Track-ms_sql-xAKCmQKI/ mais le résultat du package était un échec. Serait-ce parce que le dtsx n'était pas sur la machine locale? Le paquet fonctionne aok par lui-même.

+0

Addendum: J'ai ajouté un écouteur d'événement et a découvert que le message d'erreur spécifique est: «SSIS code d'erreur DTS_E_PRODUCTLEVELTOLOW le niveau du produit est insuffisant pour le composant ... » Les 2 premières étapes du package réussissent mais échouent sur le 3ème qui est une transformation de données. Le consensus général est que l'édition de SQL Server est en faute. Êtes-vous d'accord? Comment mieux procéder? –

Répondre

0


D'abord, vous devez trouver le fichier Microsoft.SqlServer.ManagedDTS.dll et ajoutez cette ressource dans votre projet Visual Studio:

  1. Vous pourriez être en mesure pour trouver ce fichier en allant à Project --> Add
    Reference... --> Browse
    dans Visual Studio, et en recherchant ce fichier
    dans votre 0 Répertoire.


  2. Si vous ne trouvez pas là (ce qui est arrivé à moi), allez à la Run... rapide dans Windows et entrez C:\Windows\assembly\gac_msil. Puis, dans la zone de recherche de ce dossier, entrez le nom de fichier Microsoft.SqlServer.ManagedDTS.dll. Copiez-collez ce fichier dans quelque part qui est beaucoup plus facile à trouver, et ajoutez cette référence dans votre projet Visual Studio comme mentionné ci-dessus.



Alors, maintenant que toutes ces choses folles est fait, voici une idée de la façon d'exécuter un package SSIS .dtsx en VB.NET. Ce est non testé, avec l'aide de quelqu'un de plus malin que moi, qui a eu l'idée de quelqu'un d'autre plus intelligent ;):

Protected Friend Sub loadSSISPackage(ByVal packageFile As String) 

    If Me.fileExists(packageFile) AndAlso packageFile.EndsWith(".dtsx") Then 
     Dim pkg As New Microsoft.SqlServer.Dts.Runtime.Package 
     Dim app As New Microsoft.SqlServer.Dts.Runtime.Application 
     Dim pkgResults As Microsoft.SqlServer.Dts.Runtime.DTSExecResult 

     pkg = app.LoadPackage(packageFile, Nothing) 
     pkgResults = pkg.Execute() 
     MsgBox(pkgResults.ToString()) 
    Else 
     Environment.Exit(-1) 
    End If 
End Sub 
0

vous devez également définir une référence (importation Microsoft.SqlServer .dts)

import Microsoft.SqlServer.Dts 

Protected Friend Sub loadSSISPackage(ByVal packageFile As String) 
    If Me.fileExists(packageFile) AndAlso packageFile.EndsWith(".dtsx") Then 
     Dim pkg As New Microsoft.SqlServer.Dts.Runtime.Package 
     Dim app As New Microsoft.SqlServer.Dts.Runtime.Application 
     Dim pkgResults As Microsoft.SqlServer.Dts.Runtime.DTSExecResult 

     pkg = app.LoadPackage(packageFile, Nothing) 
     pkgResults = pkg.Execute() 
     MsgBox(pkgResults.ToString()) 
    Else 
     Environment.Exit(-1) 
    End If 
End Sub 
Questions connexes