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 :

Visual Studio 2010: Transfert d'une table généréé par SQL vers un fichier Excel


Sujet :

SSIS

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Visual Studio 2010: Transfert d'une table généréé par SQL vers un fichier Excel
    Bonjour,
    J'essaie de transférer les données créées par une requête SQL dans une table Excel afin de pouvoir l'envoyer par mail.
    Pour le moment je n'arrive pas. j'ai apparemment un pb de conversion de données vu le message d'erreur.Nom : Snap10_Error.jpg
Affichages : 831
Taille : 67,1 Ko
    J'ai essayé de passer par un convertisseur convertisseur de données sans plus de succès. Peut-être que je n'ai pas la bonne méthode , étant débutant sur ce type de logiciel. Je vous confie ma structure:Nom : Snap_gen.jpg
Affichages : 966
Taille : 354,6 KoQui aurait une idée pour moi, merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Tes colonnes sources dans ta table SQL sont ils en varchar ou nvarchar ?

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Nature colonnes
    C'est du varchar(max)

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Je te suggère une conversion de colonne (dans les flux de données, flux de transformation) de ta colonne source (qui soit être du DT_STR en DT_WSTR) (ANSI en Unicode).
    Et ce pour toutes les colonnes de types Chaine

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Merci. Mais une autre erreeur est apparue !!!
    En fait j'ai intercalé un convertisseur de données qui transforme mes données source chaine [DT_TEXT] en [DT_NTEXT] et comme ça la conversion se fait bien. Sauf... J'ai une nouvelle anomalie que je qui me laisse perplexe. Je la livre: Nom : Ano_OLE.jpg
Affichages : 866
Taille : 184,5 Ko. Qui aurait une idée. A priori quelque chose n'est pas monté sur mon serveur? Comment le mettre en oeuvre. Merci pour votre conteribution !!!

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Oui ça me dit qqch àa
    Si tu vas dans explorateur de solution, tu cliques droit sur ta solution, tu cliques propriété.
    Dans la page de propriété -> Débogage -> Run64BitRuntime = False
    Ca devrait marcher

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut On progresse mais C pas ça...
    Effectivement ta solution proposée m'a permis d'avancer.
    Maintenant j'ai autre chose: voici ce que j'ai comme anomalie et en dessous ce que j'ai fait, mais sans succès. C'est à désespérer !!!
    Nom : Snap14.jpg
Affichages : 823
Taille : 186,2 Ko Merci encore pour vos idées

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Le problème c'est que je ne vois pas tes erreurs : tu as catché l'affichage de tes commandes SSIS dans une fenêtre de commande mais tu ne m'as montré que la fin.
    Je ne vois pas ce qui génère l'erreur.

    Pour information si tu mets la valeur du MaximumCountError = 0, tu peux avoir autant d'erreur que tu veux sans arrêter ton traitement SSIS mais je te déconseille de le faire ici et de le laisser à 1 car j'ai l'impression que tu as une erreur sur chaque ligne mais je ne sais pas ce que c'est

  9. #9
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Dans SSIS tu devrais aller sur l'onglet Résultats d'execution et donner l'erreur que tu as.
    Il devrait y avoir une liste. La première erreur devrait donner la raison

  10. #10
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Le fichier en question
    C'est ça que tu attendais, peut-être ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    SSIS package "C:\Users\GMC\Documents\Gilles\Integration Services Project1\Integration Services Project1\Package.dtsx" starting.
    Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
    Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
    Warning: 0x80047076 at Data Flow Task, SSIS.Pipeline: The output column "Copy of Salle" (15) on output "Data Conversion Output" (11) and component "Data Conversion" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance.
    Warning: 0x80047076 at Data Flow Task, SSIS.Pipeline: The output column "Copy of Num_TDHQ" (18) on output "Data Conversion Output" (11) and component "Data Conversion" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance.
    Warning: 0x80047076 at Data Flow Task, SSIS.Pipeline: The output column "Copy of I1" (21) on output "Data Conversion Output" (11) and component "Data Conversion" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance.
    Warning: 0x80047076 at Data Flow Task, SSIS.Pipeline: The output column "Copy of I2" (24) on output "Data Conversion Output" (11) and component "Data Conversion" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance.
    Warning: 0x80047076 at Data Flow Task, SSIS.Pipeline: The output column "Copy of I3" (27) on output "Data Conversion Output" (11) and component "Data Conversion" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance.
    Warning: 0x80047076 at Data Flow Task, SSIS.Pipeline: The output column "Copy of kW" (30) on output "Data Conversion Output" (11) and component "Data Conversion" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance.
    Information: 0x40043006 at Data Flow Task, SSIS.Pipeline: Prepare for Execute phase is beginning.
    Information: 0x40043007 at Data Flow Task, SSIS.Pipeline: Pre-Execute phase is beginning.
    Error: 0xC0202009 at Data Flow Task, Excel Destination [36]: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E21.
    An OLE DB record is available.  Source: "Microsoft JET Database Engine"  Hresult: 0x80040E21  Description: "Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué.".
    Error: 0xC002F445 at Data Flow Task, Excel Destination [36]: An error occurred while setting up a binding for the "TDHQ" column. The binding status was "DT_NTEXT".
    Error: 0xC0202025 at Data Flow Task, Excel Destination [36]: Cannot create an OLE DB accessor. Verify that the column metadata is valid.
    Error: 0xC004701A at Data Flow Task, SSIS.Pipeline: Excel Destination failed the pre-execute phase and returned error code 0xC0202025.
    Information: 0x40043008 at Data Flow Task, SSIS.Pipeline: Post Execute phase is beginning.
    Information: 0x4004300B at Data Flow Task, SSIS.Pipeline: "Excel Destination" wrote 0 rows.
    Information: 0x40043009 at Data Flow Task, SSIS.Pipeline: Cleanup phase is beginning.
    Task failed: Data Flow Task
    Warning: 0x80019002 at Package: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (4) 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 "C:\Users\GMC\Documents\Gilles\Integration Services Project1\Integration Services Project1\Package.dtsx" finished: Failure.
    The program '[36888] DtsDebugHost.exe: DTS' has exited with code 0 (0x0).
    Si c'est ça je découvre !!! Je pense qu'il y a à reprendre !!! Tu as une idée. (Désolé, je débute )

  11. #11
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Tu devrais avoir une colonne DTHQ je crois en DT_NTEXT : Essais déjà de l'enlever de ton alimentation de table. Juste pour voir.
    Ensuite tu essaieras de la convertir en DT_STR (en passant par DT_TEXT avant)

  12. #12
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Bonjour, ça ne marche toujours pas...
    Sur tes bons conseils , j'ai enlevé l'alimentation de la table excel, et je me retrouve donc avec une table source et le convertisseur de données. Je transforme mes données source (DT_TEXT) en tout ce que je veux DT_STR ou DT_WSTR. Quand je connecte la table impossible de convertir le DT_TEXT en TD_WSTR qui est outup de l'Excel de destination. Et... je tombe inévitablement en erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Error at Data Flow Task [Excel Destination [948]]: Columns "Copy of TDHQ" and "TDHQ" cannot convert between unicode and non-unicode string data types.
     
     
    Error at Data Flow Task [SSIS.Pipeline]: "Excel Destination" failed validation and returned validation status "VS_ISBROKEN".
     
     
    Error at Data Flow Task [SSIS.Pipeline]: One or more component failed validation.
     
     
    Error at Data Flow Task: There were errors during task validation.
    . Ca me fatigue !!!

  13. #13
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Tu devrais faire une double conversion : d'abord DT_TEXT en DT_STR puis ré appliquer un convertisseur de données de ST_STR vers DT_WSTR.
    Je pense que ça devrait marcher.

  14. #14
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Même problème, le second convertisseur refuse de rester en DT_WSTR
    Si je retire la connexion à la table le second convertisseur garde le DT_WSTR et ne se remet pas en DT_TEXT. Je me demande si j'utilise la bonne interface de destination. En ne gardant de ma source OLE que des éléments en DT_R8, pas de pb, l'OP se passe bien et il n'y a même pas besoin de passer par un convertisseur. J'y pert mon latin

  15. #15
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Est ce que tu as
    Source : Colonne DT_TEXT -> Convertisseur 1 DT_TEXT en DT_STR -> Convertisseur 2 DT_STR en DT_WSTR -> Destination ST_WSTR ?

  16. #16
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Voila ce que j'ai
    Source : Colonne DT_TEXT -> Convertisseur 1 DT_TEXT en DT_STR -> Convertisseur2 DT_TEXT en DT_TEXT . Le conv 2 se retrouve avec un TD_TEXT en entrée je n'y comprend rien. Impossible de passer en DT_WSTR en sortie.

  17. #17
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Attention c'est la sortie du convertisseur 1 qui doit être à l'entrée du convertiseur 2.

    Si tu ne renommes pas la colonne la sortie de ton convertisseur 1, en supposant que ta colonne s'appelle Col1, par défaut la sortie du convertisseur 1 s'appellera Copie de Col1. Si tu la renommes et que tu donnes le même nom, tu auras deux colonnes avec le même nom mais avec un préfixe différent : Source.Col1 et Convertisseur 1.Col1. La sortie de ton convertisseur 1 doit s'appeler Convertisseur 1.Col1.

    Le principe est le même entre le convertisseur 2 et la sortie

  18. #18
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Je m'étais mélangé les crayons....
    J'ai effectivement mélangé entrée et sortie.
    J'ai maintenant: Source : Colonne DT_TEXT -> Convertisseur 1 DT_TEXT en DT_STR -> Convertisseur 2 DT_STR en DT_WSTR avec en entrée EXcell la donnée qui va bien et ça paaaassssseeee !!!!!!
    Je vais essayer de rajouter les champs qui me restent.

  19. #19
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Décidement je joue de malchance
    Ce matin impossible de lancer le débogueur: la touche F5 est grisée!! Comment le remettre en service. Une idée ? Merci

  20. #20
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    T'éteins et tu ralumes c la meilleur des solutions

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] manipulation d'une table mdb avec visual studio 2010
    Par Invité dans le forum Visual Studio
    Réponses: 1
    Dernier message: 28/06/2015, 17h37
  2. Réponses: 4
    Dernier message: 08/06/2011, 10h39
  3. [XL-2003] Comment copier une date d'un TextBox vers un fichier Excel
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/09/2010, 01h14
  4. Réponses: 7
    Dernier message: 12/02/2010, 19h45
  5. Réponses: 16
    Dernier message: 06/01/2010, 16h17

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