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

MFC Discussion :

ADO


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par d�faut ADO
    Bonjour,

    je suis d�butante en C++, j'ai d�velopp� un petit pg permettant d'acc�der �une base de donn�es, sous visual C++, et d'effectuer des requ�tes � l'aide de l'encapsulation de ADOLib.
    J'ai fait une fonction qui effectue un select dans une table, quand je veux r�cup�rer un seul �lement y'a pas de probl�me j'utilise le GetFieldVal, mais si je veux que ette fonction retourne un tableau,comment dois-je faire?
    est-ce possible de r�cup�rer les informations directement sous forme de tableau avec l'encaplusation de ADOLib?

    merci de votre r�ponse

  2. #2
    pdl
    pdl est d�connect�
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Par d�faut
    Salut,

    Heu non ADOLib ne permet pas de renvoyer un tableau, je n'en vois pas vraiment l'int�r�t car tout est contenu dans un recordset que tu peux parcourir. Et si tu veux vraiment un tableau, alors tu peux toujours le construire toi-m�me.

    Bon si tu ne vois pas comment fais moi signe et j'essaierai de te guider.

    b�t,
    Pierre

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Par d�faut
    Bonjour

    Si tu veux recuperer tous tes elements selectionn� dans un tableau ajoute une listcontrol dans une de tes fenetre et utilise la fonction

    FetchInListCtrl(&m_listbase); // m_listbase est la variables members de la list.

    Cette fonction dans ADOlib va directement recuperer le nom de chaque colonne et va mettre a jour la list control avec tous les elements ainsi que le nom des colonnes

    Cordialament

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par d�faut
    En fait, le but est de cr�er une DLL, j'avais commenc� � faire un pg pour tester dans un premier temps les fonctions qui feront partie de la DLL.
    et donc la DLL doit retourner au programme principal le r�sultat de la requ�te qui n'est pas une simple chaine de caract�re mais se pr�sente sous forme de tableau, c'est pour cela que j'avais penser stocker les infos dans un tableau. mais peut �te y'a t'il une autre solution pour retourner ces informations?

    si tu pouvais me guider un peu car je ne m'y connais pas beaucoup, ca serait vraiment sympa.

    merci.

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Par d�faut
    Avec ADOlib en direct tu ne pourras pas retourner un tableau de CString ou de char comme je pense que tu le veux.

    Soit dans ta DLL tu forme un tableau en recuperant chacun de tes element avec des GetFieldVal() puis tu retourne ce tableau.

    Tu peut essayer aussi de chercher vers la classe CList sur la MSDN pour renvoyer une liste d'element.

    Une autre possibilit� est d'utiliser dans ta DLL la fonction ToFile de la classe ADOlib qui va te cree un fichier texte de tous les elements du SELECT s�parer avec un ";" , de plus si tu passes comme argument au ToFile un header � 0 il ne mettra pas le nom de tes colonnes.
    Il te restera a faire une lecture de ce fichier texte dans ton prog principale pour recuperer tes data.

    Cordialement

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par d�faut ADO tableau
    Je ne peux utiliser le fichier texte, car la personne qui va utiliser la DLL pr�f�re un tableau, (�videmment), quelqu'un peut m'aider pour construire ce tableau avec le GetFieldVal?
    d�sol�e mais je suis d�butante, je regarde des exemples dans les bouquins mais ce n'est pas toujours tres clair.

    Merci.

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Par d�faut
    Si tu connais le nombre max d'item que tu dois pouvoir recuperer tu peux essayer ceci

    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
    #define  nbcolonne  10
    #define nbligne  10
     
    CString my_tab[nbcolonne * nbligne];
    CString strbuf;
     
    for (int i=0;i<nbligne;i++)
    {
    mySel1->GetFieldVal("nom colonne 1",strbuf);
    my_tab[i*nbcolonne] = strbuf;
     
    mySel1->GetFieldVal("nom colonne 2",strbuf);
    my_tab[i*nbcolonne+1] = strbuf;
     
    ....
     
    mySel1->GetFieldVal("nom colonne 10",strbuf);
    my_tab[(i*nbcolonne+9]
    }

    Tu as ainsi un tableau de CString a indexe en fonction de ton nombre de ligne ou de colonne

    Si tu n'as pas la taille au d�part du devra alloue dynamiquement ton tableau avec un malloc ou new


    [Balises CODE rajout�es par Loulou24, merci d'y penser � l'avenir]

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par d�faut ADO tableau
    ok,
    merci beaucoup, je vais essayer de suite!

    par contre j'ai un autre pb... et oui, je ne suis vraiment pas dou�e en C!

    je voudrais que ma fonction retourne au programme principal le tableau, j'ai essay� en utilisant les r�ferences mais je n'y arrive pas et par les pointeurs, j'ai des messages d'erreur,
    voil� ce que j'ai �crit:

    dans le programme principal:
    CString tableau[nb-col, nb_ligne];
    // appel de la fct IMU_surveillance_gtc(5,&tableau);

    et dans la fonction:
    void surveillance(int num_demande, CString* tableau[nb_ligne,nb_col])

    est-ce correct?
    sinon comment faire en pasant par les r�ferences?

    PS: petite question: il est plus pr�f�rabl de renvoyer les valeurs au pg principal en utilisant les pointeurs ou les r�ferences?

    merci beaucoup pour votre aide.

Discussions similaires

  1. R�ponses: 31
    Dernier message: 30/03/2006, 16h57
  2. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et ant�rieur
    R�ponses: 11
    Dernier message: 05/09/2002, 13h55
  3. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 05/09/2002, 11h08
  4. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    R�ponses: 2
    Dernier message: 13/06/2002, 14h58
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    R�ponses: 3
    Dernier message: 10/06/2002, 07h36

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