Je dispose d'un pachage SSIS permettant d'extraire des données de fichiers
excel et de les inserer dans une base de données SQL Serveur 2005. Sous
Visual Studio 2005, mon package s'execute correctement. Idem en programmation
VB6.
Cependant, mon probleme survient en programmation VBScript.
Mon package necessite l'initialisation de variables, à savoir le nom du
fichier à traiter.
Code :
pkg = "nomPackage"
Set app = CreateObject("MSDTS.Application")
Set p1 = app.LoadPackage(pkg, true, Nothing)
variables = p1.Variables.add(...) --> C'est ici que ça plante
L'objet Package n'accepte pas la proprieté Variables
Alors comment passer des variables à mon package ?
Note: Lorsque je modifie mon package pour ne plus qu'il accepte de
variables, ca marche.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MCI (ex do ré Mi chel la si do) [MVP]
Bonjour !
Juste une idée (non testée) : et en passant par un objet intermédiaire ? Par exemple : Set p1 = app.LoadPackage(pkg, true, Nothing) Set p2 = p1.Variables variables = p2.add()
@+
MCI
Bonjour !
Juste une idée (non testée) : et en passant par un objet intermédiaire
?
Par exemple :
Set p1 = app.LoadPackage(pkg, true, Nothing)
Set p2 = p1.Variables
variables = p2.add()
Juste une idée (non testée) : et en passant par un objet intermédiaire ? Par exemple : Set p1 = app.LoadPackage(pkg, true, Nothing) Set p2 = p1.Variables variables = p2.add()
@+
MCI
Gilles LAURENT [MVP]
"Gencer" a écrit dans le message de news:
Bonjour,
[...] | Cependant, mon probleme survient en programmation VBScript. | Mon package necessite l'initialisation de variables, à savoir le nom | du fichier à traiter. | Code : | pkg = "nomPackage" | Set app = CreateObject("MSDTS.Application") | Set p1 = app.LoadPackage(pkg, true, Nothing) | variables = p1.Variables.add(...) --> C'est ici que ça plante | L'objet Package n'accepte pas la proprieté Variables
VBScript n'est pas compatible avec les objets .Net SSIS http://msdn2.microsoft.com/en-us/library/ms403344.aspx
<quote> Note: The Integration Services application programming interfaces are incompatible with COM-based scripting languages such as VBScript </quote>
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"Gencer" <Gencer@discussions.microsoft.com> a écrit dans le message de
news:5859A4DD-25C0-4AAB-94F8-A063E77CC968@microsoft.com
Bonjour,
[...]
| Cependant, mon probleme survient en programmation VBScript.
| Mon package necessite l'initialisation de variables, à savoir le nom
| du fichier à traiter.
| Code :
| pkg = "nomPackage"
| Set app = CreateObject("MSDTS.Application")
| Set p1 = app.LoadPackage(pkg, true, Nothing)
| variables = p1.Variables.add(...) --> C'est ici que ça plante
| L'objet Package n'accepte pas la proprieté Variables
VBScript n'est pas compatible avec les objets .Net SSIS
http://msdn2.microsoft.com/en-us/library/ms403344.aspx
<quote>
Note:
The Integration Services application programming interfaces are
incompatible with COM-based scripting languages such as VBScript
</quote>
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
[...] | Cependant, mon probleme survient en programmation VBScript. | Mon package necessite l'initialisation de variables, à savoir le nom | du fichier à traiter. | Code : | pkg = "nomPackage" | Set app = CreateObject("MSDTS.Application") | Set p1 = app.LoadPackage(pkg, true, Nothing) | variables = p1.Variables.add(...) --> C'est ici que ça plante | L'objet Package n'accepte pas la proprieté Variables
VBScript n'est pas compatible avec les objets .Net SSIS http://msdn2.microsoft.com/en-us/library/ms403344.aspx
<quote> Note: The Integration Services application programming interfaces are incompatible with COM-based scripting languages such as VBScript </quote>
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Gencer
Bonjour,
J'ai deja effectué ce test sans succes...
Merci
"MCI (ex do ré Mi chel la si do) [MVP]" wrote:
Bonjour !
Juste une idée (non testée) : et en passant par un objet intermédiaire ? Par exemple : Set p1 = app.LoadPackage(pkg, true, Nothing) Set p2 = p1.Variables variables = p2.add()
@+
MCI
Bonjour,
J'ai deja effectué ce test sans succes...
Merci
"MCI (ex do ré Mi chel la si do) [MVP]" wrote:
Bonjour !
Juste une idée (non testée) : et en passant par un objet intermédiaire
?
Par exemple :
Set p1 = app.LoadPackage(pkg, true, Nothing)
Set p2 = p1.Variables
variables = p2.add()
Juste une idée (non testée) : et en passant par un objet intermédiaire ? Par exemple : Set p1 = app.LoadPackage(pkg, true, Nothing) Set p2 = p1.Variables variables = p2.add()
@+
MCI
Gencer
Bonjour,
Si VBScript est incompatible avec les objets .Net SSIS comme on peut le lire sur le lien http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors pourquoi je peux créer sous VBScript l'objet MSDTS.Application et l'objet package pour gérer et exécuter le package SSIS. Surtout que mon script VBScript exécute bien mon package SSIS quand ce dernier ne prend pas de paramètres, c'est juste quand je souhaite lui passer des paramètres que ca ne marche, enfin ce n'est pas que ca na marche plus c'est surtout que n'arrive pas à trouver la syntaxe pour les ajouter la le paramètre. Normalement, c'est : variables = p1.Variables.add("User::ExcelFile", false, "User", "nomdufichier") Mais apparemment, non...
A bientôt.
"Gilles LAURENT [MVP]" wrote:
"Gencer" a écrit dans le message de news:
Bonjour,
[...] | Cependant, mon probleme survient en programmation VBScript. | Mon package necessite l'initialisation de variables, à savoir le nom | du fichier à traiter. | Code : | pkg = "nomPackage" | Set app = CreateObject("MSDTS.Application") | Set p1 = app.LoadPackage(pkg, true, Nothing) | variables = p1.Variables.add(...) --> C'est ici que ça plante | L'objet Package n'accepte pas la proprieté Variables
VBScript n'est pas compatible avec les objets .Net SSIS http://msdn2.microsoft.com/en-us/library/ms403344.aspx
<quote> Note: The Integration Services application programming interfaces are incompatible with COM-based scripting languages such as VBScript </quote>
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Bonjour,
Si VBScript est incompatible avec les objets .Net SSIS comme on peut le lire
sur le lien http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors
pourquoi je peux créer sous VBScript l'objet MSDTS.Application et l'objet
package pour gérer et exécuter le package SSIS.
Surtout que mon script VBScript exécute bien mon package SSIS quand ce
dernier ne prend pas de paramètres, c'est juste quand je souhaite lui passer
des paramètres que ca ne marche, enfin ce n'est pas que ca na marche plus
c'est surtout que n'arrive pas à trouver la syntaxe pour les ajouter la le
paramètre.
Normalement, c'est :
variables = p1.Variables.add("User::ExcelFile", false, "User", "nomdufichier")
Mais apparemment, non...
A bientôt.
"Gilles LAURENT [MVP]" wrote:
"Gencer" <Gencer@discussions.microsoft.com> a écrit dans le message de
news:5859A4DD-25C0-4AAB-94F8-A063E77CC968@microsoft.com
Bonjour,
[...]
| Cependant, mon probleme survient en programmation VBScript.
| Mon package necessite l'initialisation de variables, à savoir le nom
| du fichier à traiter.
| Code :
| pkg = "nomPackage"
| Set app = CreateObject("MSDTS.Application")
| Set p1 = app.LoadPackage(pkg, true, Nothing)
| variables = p1.Variables.add(...) --> C'est ici que ça plante
| L'objet Package n'accepte pas la proprieté Variables
VBScript n'est pas compatible avec les objets .Net SSIS
http://msdn2.microsoft.com/en-us/library/ms403344.aspx
<quote>
Note:
The Integration Services application programming interfaces are
incompatible with COM-based scripting languages such as VBScript
</quote>
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Si VBScript est incompatible avec les objets .Net SSIS comme on peut le lire sur le lien http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors pourquoi je peux créer sous VBScript l'objet MSDTS.Application et l'objet package pour gérer et exécuter le package SSIS. Surtout que mon script VBScript exécute bien mon package SSIS quand ce dernier ne prend pas de paramètres, c'est juste quand je souhaite lui passer des paramètres que ca ne marche, enfin ce n'est pas que ca na marche plus c'est surtout que n'arrive pas à trouver la syntaxe pour les ajouter la le paramètre. Normalement, c'est : variables = p1.Variables.add("User::ExcelFile", false, "User", "nomdufichier") Mais apparemment, non...
A bientôt.
"Gilles LAURENT [MVP]" wrote:
"Gencer" a écrit dans le message de news:
Bonjour,
[...] | Cependant, mon probleme survient en programmation VBScript. | Mon package necessite l'initialisation de variables, à savoir le nom | du fichier à traiter. | Code : | pkg = "nomPackage" | Set app = CreateObject("MSDTS.Application") | Set p1 = app.LoadPackage(pkg, true, Nothing) | variables = p1.Variables.add(...) --> C'est ici que ça plante | L'objet Package n'accepte pas la proprieté Variables
VBScript n'est pas compatible avec les objets .Net SSIS http://msdn2.microsoft.com/en-us/library/ms403344.aspx
<quote> Note: The Integration Services application programming interfaces are incompatible with COM-based scripting languages such as VBScript </quote>
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Méta-MCI (MVP)
Bonsoir !
Une cause possible pourrait être l'utilisation d'une structure de données non compatible avec VBS. Ainsi, tant qu'il n'y aurait pas de paramètre, ça fonctionnerait ; mais l'impossibilité de gérer un type de données particulier empêcherait VBS de pouvoir utiliser certains paramètres.
C'est juste une hypothèse.
@+
Michel Claveau
Bonsoir !
Une cause possible pourrait être l'utilisation d'une structure de
données non compatible avec VBS.
Ainsi, tant qu'il n'y aurait pas de paramètre, ça fonctionnerait ; mais
l'impossibilité de gérer un type de données particulier empêcherait VBS
de pouvoir utiliser certains paramètres.
Une cause possible pourrait être l'utilisation d'une structure de données non compatible avec VBS. Ainsi, tant qu'il n'y aurait pas de paramètre, ça fonctionnerait ; mais l'impossibilité de gérer un type de données particulier empêcherait VBS de pouvoir utiliser certains paramètres.
C'est juste une hypothèse.
@+
Michel Claveau
Gilles LAURENT [MVP]
"Gencer" a écrit dans le message de news: | Bonjour,
Bonjour,
| Si VBScript est incompatible avec les objets .Net SSIS comme on peut | le lire sur le lien | http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors pourquoi | je peux créer sous VBScript l'objet MSDTS.Application et l'objet | package pour gérer et exécuter le package SSIS.
Parce que vous utilisez le wrapper COM qui lui est compatible VBScript. Cependant celui-ci n'expose qu'un sous-ensemble des API .Net SSIS.
| Surtout que mon script VBScript exécute bien mon package SSIS quand ce | dernier ne prend pas de paramètres, c'est juste quand je souhaite lui | passer des paramètres que ca ne marche, enfin ce n'est pas que ca na | marche plus c'est surtout que n'arrive pas à trouver la syntaxe pour | les ajouter la le paramètre. | Normalement, c'est : | variables = p1.Variables.add("User::ExcelFile", false, "User", | "nomdufichier") Mais apparemment, non...
Un petit transcript avec la Console WSH Shell : http://glsft.free.fr/index.php?option=com_content&taskÊtegory§ionid=4&id&Itemid(
********************************************************************************************* WSH Transcript Start Start time : 2007-11-04 15:58:24 Username : DOMAINadministrateur Machine : HOME2003 (Microsoft Windows NT 5.2.3790.2) ********************************************************************************************* Transcript started, output file is Z:TestMSDTS.txt
WSH Z:Test> ' création d'une instance Application WSH Z:Test> Set oApp=co("MSDTS.Application") WSH Z:Test> ' chargement du package de test WSH Z:Test> Set oPac=oApp.LoadPackage("C:SSISUsingExecuteProcess.dtsx", True, Nothing) WSH Z:Test> ' détermination des membres (méthodes et propriétés) de l'objet "MSDTS.Package" WSH Z:Test> gm(oPac)
Category Name --------- ------ Function CheckSignature () Function Execute (pConnections, pVariables, pEvents, pLog, pTransaction) Sub ExportConfigurationFile (bstrFileName) Function FindReferencedObjects (pObject) Function GetBreakpointTargets (pBreakpointSite, onlyEnabled) Function GetObjectFromPackagePath (bstrPath, ppProperty) Sub ImportConfigurationFile (bstrFileName) Sub LoadUserCertificateByHash (ppsaCertHash) Sub LoadUserCertificateByName (SubjectName) Sub PermitUnencryptedSave (vbPermit) Sub ProcessConfiguration (bstrPath, vValue) Function Validate (pConnections, pVariables, pEvents, pLog) Property CertificateContext Property CertificateObject Property CheckpointFileName Property CheckpointUsage Property CheckSignatureOnLoad Property Configurations Property Connections Property CreationDate Property CreatorComputerName Property CreatorName Property DesignEvents Property EnableConfigurations Property EncryptCheckpoints Property Errors Property ExtendedProperties Property InteractiveMode Property LogProviders Property MaxConcurrentExecutables Property OfflineMode Property PackageFormatVersion Property PackagePassword Property PackagePriorityClass Property PackageType Property ProtectionLevel Property SaveCheckpoints Property SQLFolder Property SuppressConfigurationWarnings Property UpdateObjects Property UpdatePackage Property VersionBuild Property VersionComments Property VersionGUID Property VersionMajor Property VersionMinor Property Warnings
WSH Z:Test>
Transcript stopped.
Et là on s'aperçoit que le wrapper COM "MSDTS.Package" n'expose pas la propriété "Variables" permettant de manipuler les variables d'un package. Il est donc nécessaire d'utiliser directement les API .Net (Les API .Net ne sont pas compatibles avec un langage de scripting comme VBScript).
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"Gencer" <Gencer@discussions.microsoft.com> a écrit dans le message de
news:C3FB9835-50F1-4F1E-B39D-B48B028E4479@microsoft.com
| Bonjour,
Bonjour,
| Si VBScript est incompatible avec les objets .Net SSIS comme on peut
| le lire sur le lien
| http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors pourquoi
| je peux créer sous VBScript l'objet MSDTS.Application et l'objet
| package pour gérer et exécuter le package SSIS.
Parce que vous utilisez le wrapper COM qui lui est compatible VBScript.
Cependant celui-ci n'expose qu'un sous-ensemble des API .Net SSIS.
| Surtout que mon script VBScript exécute bien mon package SSIS quand ce
| dernier ne prend pas de paramètres, c'est juste quand je souhaite lui
| passer des paramètres que ca ne marche, enfin ce n'est pas que ca na
| marche plus c'est surtout que n'arrive pas à trouver la syntaxe pour
| les ajouter la le paramètre.
| Normalement, c'est :
| variables = p1.Variables.add("User::ExcelFile", false, "User",
| "nomdufichier") Mais apparemment, non...
Un petit transcript avec la Console WSH Shell :
http://glsft.free.fr/index.php?option=com_content&taskÊtegory§ionid=4&id&Itemid(
*********************************************************************************************
WSH Transcript Start
Start time : 2007-11-04 15:58:24
Username : DOMAINadministrateur
Machine : HOME2003 (Microsoft Windows NT 5.2.3790.2)
*********************************************************************************************
Transcript started, output file is Z:TestMSDTS.txt
WSH Z:Test> ' création d'une instance Application
WSH Z:Test> Set oApp=co("MSDTS.Application")
WSH Z:Test> ' chargement du package de test
WSH Z:Test> Set
oPac=oApp.LoadPackage("C:SSISUsingExecuteProcess.dtsx", True, Nothing)
WSH Z:Test> ' détermination des membres (méthodes et propriétés) de
l'objet "MSDTS.Package"
WSH Z:Test> gm(oPac)
Category Name
--------- ------
Function CheckSignature ()
Function Execute (pConnections, pVariables, pEvents, pLog,
pTransaction)
Sub ExportConfigurationFile (bstrFileName)
Function FindReferencedObjects (pObject)
Function GetBreakpointTargets (pBreakpointSite, onlyEnabled)
Function GetObjectFromPackagePath (bstrPath, ppProperty)
Sub ImportConfigurationFile (bstrFileName)
Sub LoadUserCertificateByHash (ppsaCertHash)
Sub LoadUserCertificateByName (SubjectName)
Sub PermitUnencryptedSave (vbPermit)
Sub ProcessConfiguration (bstrPath, vValue)
Function Validate (pConnections, pVariables, pEvents, pLog)
Property CertificateContext
Property CertificateObject
Property CheckpointFileName
Property CheckpointUsage
Property CheckSignatureOnLoad
Property Configurations
Property Connections
Property CreationDate
Property CreatorComputerName
Property CreatorName
Property DesignEvents
Property EnableConfigurations
Property EncryptCheckpoints
Property Errors
Property ExtendedProperties
Property InteractiveMode
Property LogProviders
Property MaxConcurrentExecutables
Property OfflineMode
Property PackageFormatVersion
Property PackagePassword
Property PackagePriorityClass
Property PackageType
Property ProtectionLevel
Property SaveCheckpoints
Property SQLFolder
Property SuppressConfigurationWarnings
Property UpdateObjects
Property UpdatePackage
Property VersionBuild
Property VersionComments
Property VersionGUID
Property VersionMajor
Property VersionMinor
Property Warnings
WSH Z:Test>
Transcript stopped.
Et là on s'aperçoit que le wrapper COM "MSDTS.Package" n'expose pas la
propriété "Variables" permettant de manipuler les variables d'un
package. Il est donc nécessaire d'utiliser directement les API .Net (Les
API .Net ne sont pas compatibles avec un langage de scripting comme
VBScript).
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"Gencer" a écrit dans le message de news: | Bonjour,
Bonjour,
| Si VBScript est incompatible avec les objets .Net SSIS comme on peut | le lire sur le lien | http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors pourquoi | je peux créer sous VBScript l'objet MSDTS.Application et l'objet | package pour gérer et exécuter le package SSIS.
Parce que vous utilisez le wrapper COM qui lui est compatible VBScript. Cependant celui-ci n'expose qu'un sous-ensemble des API .Net SSIS.
| Surtout que mon script VBScript exécute bien mon package SSIS quand ce | dernier ne prend pas de paramètres, c'est juste quand je souhaite lui | passer des paramètres que ca ne marche, enfin ce n'est pas que ca na | marche plus c'est surtout que n'arrive pas à trouver la syntaxe pour | les ajouter la le paramètre. | Normalement, c'est : | variables = p1.Variables.add("User::ExcelFile", false, "User", | "nomdufichier") Mais apparemment, non...
Un petit transcript avec la Console WSH Shell : http://glsft.free.fr/index.php?option=com_content&taskÊtegory§ionid=4&id&Itemid(
********************************************************************************************* WSH Transcript Start Start time : 2007-11-04 15:58:24 Username : DOMAINadministrateur Machine : HOME2003 (Microsoft Windows NT 5.2.3790.2) ********************************************************************************************* Transcript started, output file is Z:TestMSDTS.txt
WSH Z:Test> ' création d'une instance Application WSH Z:Test> Set oApp=co("MSDTS.Application") WSH Z:Test> ' chargement du package de test WSH Z:Test> Set oPac=oApp.LoadPackage("C:SSISUsingExecuteProcess.dtsx", True, Nothing) WSH Z:Test> ' détermination des membres (méthodes et propriétés) de l'objet "MSDTS.Package" WSH Z:Test> gm(oPac)
Category Name --------- ------ Function CheckSignature () Function Execute (pConnections, pVariables, pEvents, pLog, pTransaction) Sub ExportConfigurationFile (bstrFileName) Function FindReferencedObjects (pObject) Function GetBreakpointTargets (pBreakpointSite, onlyEnabled) Function GetObjectFromPackagePath (bstrPath, ppProperty) Sub ImportConfigurationFile (bstrFileName) Sub LoadUserCertificateByHash (ppsaCertHash) Sub LoadUserCertificateByName (SubjectName) Sub PermitUnencryptedSave (vbPermit) Sub ProcessConfiguration (bstrPath, vValue) Function Validate (pConnections, pVariables, pEvents, pLog) Property CertificateContext Property CertificateObject Property CheckpointFileName Property CheckpointUsage Property CheckSignatureOnLoad Property Configurations Property Connections Property CreationDate Property CreatorComputerName Property CreatorName Property DesignEvents Property EnableConfigurations Property EncryptCheckpoints Property Errors Property ExtendedProperties Property InteractiveMode Property LogProviders Property MaxConcurrentExecutables Property OfflineMode Property PackageFormatVersion Property PackagePassword Property PackagePriorityClass Property PackageType Property ProtectionLevel Property SaveCheckpoints Property SQLFolder Property SuppressConfigurationWarnings Property UpdateObjects Property UpdatePackage Property VersionBuild Property VersionComments Property VersionGUID Property VersionMajor Property VersionMinor Property Warnings
WSH Z:Test>
Transcript stopped.
Et là on s'aperçoit que le wrapper COM "MSDTS.Package" n'expose pas la propriété "Variables" permettant de manipuler les variables d'un package. Il est donc nécessaire d'utiliser directement les API .Net (Les API .Net ne sont pas compatibles avec un langage de scripting comme VBScript).
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr