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 :

[MFC] Requete SQL


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : R&D Developer
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Par d�faut [MFC] Requete SQL
    Bonsoir

    J'ai une base access, et j'utilise une connexion odbc pour l'interroger. Mais comment faire pour lancer une requete SQL (genre afficher tous les noms qui commencent par "B") ? C'est quoi l'histoire des param�tres ?

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    Tu utilises un objet d'acc�s aux donn�es (genre CRecordset) ? il n'y a pas une fonction executeSql ou du genre ?

  3. #3
    Membre �clair� Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : R&D Developer
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Par d�faut
    ExecuteSQL fait partie de la classe CDatabase::ExecuteSQL(LPCSTR lpszSQL );
    Je pige pas comment �a peut m'aider, d�sol�. J'utilise bien des objets du type CRecordSet, mais la seule fonction que j'ai trouv�e ne me sert pas � grand chose : ExecuteUpdateSQL(void); et comme elle ne prend aucun argument, je s�che.

    Pour me connecter, j'ai fait comme �a :
    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
     
    	CDatabase mydb;
     
    	if( !mydb.OpenEx( _T("DSN=CliAlu;DBQ=C:\\CliAlu\\DataBase CliAlu\\CliAlu.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;")))
    	{
    		AfxMessageBox("Impossible d'ouvrir la base de données");
    		return 0;
    	}
    	/*else  
    	{
    		AfxMessageBox("Test d'ouverture réussi");
    		//mydb.ExecuteSQL("mettre la requete de recherche ici");
    	}*/
     
    	CCliAluSet r(&mydb);
    est-ce que �a marcherai si je mettai la requete dans mon bloc "else" ? Vu que �a doit �tre une recherche, je pense que ce n'est pas � la connexion qu'il faut faire la requ�te ?

  4. #4
    Membre �prouv� Avatar de GP77
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par d�faut
    Tu executes ton query via un objet CDatabase comme tu le fais.
    Et puis grace � ton CRecordset tu r�cup�res les valeurs

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CDatabase ds;
    CRecordset rs(&ds);
    DBVariant dbv;
    CString  strSQL _T("Ton query");
    ds.open(...);
    rs.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL, CRecordset::readOnly | CRecordset::executeDirect);
    while(!rs.IsEOF())
    {
       rs.GetFieldValue(short(0),dbv);
    }
     
    Et le tour est joué!

  5. #5
    Membre �clair� Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : R&D Developer
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Par d�faut
    OK. Hier j'ai trouv� une autre m�thode je pense, d'arriver au m�me r�sultat je ne suis pas s�r : le membre m_strFilter �quivaudrait � une clause WHERE. J'ai trouv� �a sur le site de microsoft, les deux m�thodes sont elles les m�mes ? ou bien celle de GP77 permet plus de choses ? (c'est juste � titre perso cette question)

  6. #6
    Membre �prouv� Avatar de GP77
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par d�faut
    Tu peux faire les deux, c'est � dire que tu peux faire ton query via un CDatabase, avec un m_strFilter et puis associer un CRecordSet pour r�cup�rer les valeurs.
    Parce que sans CRecordset, je ne vois pas tr�s bien comment tu vas r�cuup�rer tes r�sultat pour les mettres dans ton control...

Discussions similaires

  1. R�ponses: 1
    Dernier message: 22/06/2007, 17h04
  2. Probl�me Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    R�ponses: 7
    Dernier message: 07/01/2004, 09h31
  3. requete sql
    Par autumn319 dans le forum ASP
    R�ponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Param�tre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    R�ponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de donn�es
    R�ponses: 2
    Dernier message: 23/07/2002, 13h43

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