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

SSIS Discussion :

[SSIS] [2K5] Boucle avec Foreach File Enumerator


Sujet :

SSIS

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut [SSIS] [2K5] Boucle avec Foreach File Enumerator
    Bonjour à tous,
    Dans ma 1re étape j'ai fait une simple lecture à partir d'un Excel Source et j'met en destination OLE DB Destination et sa a marché avec mon fichier Excel.
    Je cherche dans la seconde étape à faire boucler la lecture avec le "Foreach File Enumerator" en spécifiant le Répertoire ou la partition où il y'a les données.
    Voici les étapes que j'ai faites mais sa n'a pas marché

    1) J'ai ajouté le composant Foreach Loop Container et j'ai mis comme Enumeration "Foreach File Enumerator"

    2) J'ai spécifier le dossier où ya mes données et ils commencent tous avec MOUV donc j'ai mis ".../MOUV*.xls"

    3) Dans Variable Mapping, j'ai ajouté une nouvelle variable "MyFile" avec un Value Type = String

    4) J'ai glissé le Data Flow Task dans le coeur du Foreach Loop Container

    5) J'ai modifié la connection "Excel Connection Manager" pour que la connection boucle avec tout les fichiers en utilisant la variable MyFile, et cela Avec 'Propriétés' , ensuite dans le volet droit de la fenêtre J'ai cliquer sur "..." de 'Expressions' et j'ai mis comme Property "Connection String" et dans Expression j'ai ajouté ma variable crée précédement (MyFile).

    Et là, lorsque j'execute PAFFFFFF!!! Erreur

    J'ai ajouté en pièce jointe les images pour une meilleur explication.

    Quelqu'un pourra m'expliquer d'où provient le problème ?

    Merci d'avance

    Salut

  2. #2
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Bonjour,

    Je pense que le contenue de ta variable doit être le nom du fichier, voir son chemin complet... Or la propriéré ConnectionString de l'objet ExcelSource prend en paramètre plusieurs choses et doit resembler à un truc comme ça pour un fichier Excel

    OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
    D'ailleurs le message d'erreur le spécifie avec AcquireConnection method call failed

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Merci pour votre réponse patriceharel
    Mais mon problème n'est pas de charger qu'un seul fichier Excel mais de boucler avec plusieurs fichiers .xls .

    Ma connection String est à "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

    Je sais que le problème est dans la variable elle-même, j'ai pas su bien la configurée.
    Je cherche une solution pour charger tout mes fichiers Excel dans l'OLE DB Destination.

    Merci

  4. #4
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Je pense que ton Loop est bien configurer. Il faut juste que la variable MyFile contienne toute la chaîne de connexion et cela devrait fonctionner.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Salut,
    J'ai ajouter maintenant 2 variables la première contient le chemin du fichier je l'ai surnommé "ExcelFile" et une deuxième qui contient Extended Properties argument avec le nom "ExtProperties"

    Ensuite dans les propriétés de la Excel connection j'ai ajouté cette Expression "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @[User::ExcelFile] + ";Extended Properties=\"" + @[User::ExtProperties] + "\""

    L'objectif de mon Package est de Boucler avec plusieurs fichiers Excel et les mettre dans mon OLE DB Destination dans une table bien définie.

    Mais j'ai eu ce code d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     SSIS package "Package.dtsx" starting.
    Information: 0x4004300A at Data Flow Task, DTS.Pipeline: Validation phase is beginning.
    Warning: 0x802092A7 at Data Flow Task, OLE DB Destination [58]: Truncation may occur due to inserting data from data flow column "CAERO" with a length of 255 to database column "Aero" with a length of 50.
    Information: 0x4004300A at Data Flow Task, DTS.Pipeline: Validation phase is beginning.
    Error: 0xC0202009 at Package, Connection manager "Excel Connection Manager": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
    An OLE DB record is available.  Source: "Microsoft JET Database Engine"  Hresult: 0x80004005  Description: "Pilote ISAM introuvable.".
    Error: 0xC020801C at Data Flow Task, Excel Source [1]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.
    Error: 0xC0047017 at Data Flow Task, DTS.Pipeline: component "Excel Source" (1) failed validation and returned error code 0xC020801C.
    Error: 0xC004700C at Data Flow Task, DTS.Pipeline: One or more component failed validation.
    Error: 0xC0024107 at Data Flow Task: There were errors during task validation.
    Warning: 0x80019002 at Foreach Loop Container: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (5) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
    Warning: 0x80019002 at Package: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (5) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
    SSIS package "Package.dtsx" finished: Failure.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Salut,
    Je répond à moi même, j'ai modifié Property à "ExcelFilePath" au lieu de ConnectionString et j'ai gardé ma variable ExcelFile.

    Sa a marché
    Je met le Tag à "Résolu"

    Merci à tous,

  7. #7
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    J'ai déjà eu l'erreur Pilote ISAM introuvable, je sais pas pourquoi elle s'appelle comme ça mais c'est généralement quand la chaîne de connexion est mal construite que cela se produit.
    Si j'amais il n'y a que le chemin du fichier qui change dans les paramètres de connexion du ConnectionManager, au lieu d'utiliser la propriété ConnectionString, il y a ExcelPath qui te permet de ne modifier que le chemin du fichier.

  8. #8
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    (Je viens de voir le poste)

    Exactement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/05/2009, 08h53
  2. [SSIS] [2K5] Boucles ForEach et connexion
    Par SebastienM dans le forum SSIS
    Réponses: 10
    Dernier message: 16/04/2009, 16h33
  3. [SSIS] [2K5] reprise avec fichiers .db
    Par Prodige2020 dans le forum SSIS
    Réponses: 3
    Dernier message: 06/04/2009, 17h09
  4. [SSIS][2k5] jointure avec condition
    Par Jenormand dans le forum SSIS
    Réponses: 4
    Dernier message: 11/07/2008, 10h51
  5. [SSIS][2k5]Difficulté avec SSIS
    Par david71 dans le forum SSIS
    Réponses: 9
    Dernier message: 05/01/2006, 19h28

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