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

C++Builder Discussion :

BdD Oracle vers Excel


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut BdD Oracle vers Excel
    Bonjour,

    Je suis actuellement en train de tenter de me faire un outil d'exportation de résultats de requêtes vers Excel. Je bosse sur une base de donnée Oracle.

    J'ai suivis la FAQ du site (qui est très complète ). J'arrive donc à ouvrir Excel, me positionner à peu près où je veux, y écrire des données simples.

    Le problème arrive au moment d'utiliser des requêtes Oracles pour les remplir. Pour ce faire, je passes par un TQuery qui contient la requête, puis je remplis mes cellules avec les deux lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vValue = MaQuery->Fields->Fields[indexItem]->AsVariant;
    vCell.OlePropertySel("Value", vValue);
    vValue et vCell étant des Variants, MaQuery le composant TQuery contenant ma requête, et indexItem la colonne à récupérer (ces deux lignes se trouvant dans un for).

    Là où çà coince, c'est sur le type de champ ciblé. Si c'est un champ de type NUMBER ou DATE cela fonctionne, mais si le champ est un VARCHAR2, cela ne fonctionne pas

    Si quelqu'un à une idée, je suis preneur

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Ldoppea
    Qu'entend tu par " VARCHAR2 ", Excel fonctionne avec les variants une cellule peut etre une String, un int, une date .......

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut
    Et bien, dans la base de donnée Oracle utilisée pour mon projet, on stock tout ce qui est text dans des champs de type VARCHAR2.

    En fait, dès que ma fonction cible un champ de type VARCHAR2 (pour l'instant mes tests n'ont ciblé que du NUMBER, du DATE et du VARCHAR2), le programme me retourne une erreur de type (je n'ai plus l'erreur sous les yeux, si besoin je l'enverrais demain).

    Excel fonctionne avec les variants une cellule peut etre une String, un int, une date .......
    Justement, je récupère mon champs avec ce type :
    vValue = MaQuery->Fields->Fields[indexItem]->AsVariant;

    Et le programme bloque à l'appel de la méthode:
    vCell.OlePropertySel("Value", vValue);

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Bonsoir,

    j'ai déjà eu des problème pour faire passé des chaîne de caractère AnsiString à Excel via Ole.

    J'avais résolu mon problème en utilisant la fonction StringToOleStr().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vCell.OlePropertySet("Value", StringToOleStr(MyQuery->FieldByName("MyField")->AsString));

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut
    Ok, je teste çà dès demain matin, merci de ta réponse

    Par contre, c'est compatible avec les int et dates? Ou il faut détecter le type de champ pour appeler cette fonction uniquement pour des varchar?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut
    Ça marche, et ce pour tous les types de champs que j'ai du utiliser jusqu'à maintenant. Merci pour l'aide

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

Discussions similaires

  1. Exporter Des Donnees De Tables Oracle Vers Excel ?
    Par Djene dans le forum Administration
    Réponses: 10
    Dernier message: 13/06/2009, 19h02
  2. [Oracle] extraire des données oracle vers excel
    Par chahrazed dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/04/2009, 11h29
  3. Probleme de performance extraction données de BD Oracle vers Excel
    Par Balbo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/05/2008, 13h53
  4. formatage colonne depuis oracle vers excel
    Par the_youpi dans le forum SQL
    Réponses: 3
    Dernier message: 23/10/2007, 19h37
  5. Export de données Oracle vers Excel via PHP
    Par Yanos dans le forum Oracle
    Réponses: 1
    Dernier message: 11/01/2006, 18h11

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