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 :

requete sql en c++


Sujet :

MFC

  1. #1
    Membre averti
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2009
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Par d�faut requete sql en c++
    Bonjour,

    J'utilise Visual Studio 2008, mon projet est en MFC bas� sur des boites de dialogue, utilissant le jeu de caract�res Unicode.

    J'utilise wampserver pour cr�er une base de donn�e qui s'appelle "Client", pour le moment j'ai cr�er q'une seule table "nd", compos�e de 8 champs.

    Ce que je veux faire, c'est faire un systeme d'identification.
    Donc, dans wampserver j'ai cr�� un nouvel utilisateur nomm� par exemple "utilisateur" avec un mot de passe "0000".

    J'utilise la requete suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    if(mysql_real_connect(mysql,"localhost",Ident,MotDePasse,"Client",0,NULL,0))
    Ident et MotDePasse sont 2 CString qui contiennent respectivement le nom "utilisateur" et le mot de passe "0000"

    Le probl�me c'est que j'ai l'erreur suivante :
    'mysql_real_connect'*: impossible de convertir le param�tre 3 de 'CString' en 'const char *'

    Merci de votre aide.

  2. #2
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut
    Quelle est la signature de mysql_real_connect() ?
    D'apr�s le message du compilateur, il s'agit d'un const char* pour le 3e param�tre.
    Or, tu lui passes un CString qui a un operateur:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    operator LPCTSTR() const;
    qui convertit implicitement ton CString en LPCTSTR (const TCHAR*).

    TCHAR
    => wchar_t si Unicode
    => char si Ansi

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #if _UNICODE
    #typedef wchar_t TCHAR
    #else
    #typedef char TCHAR
    #endif
    Vu que ton projet est en unicode, �a revient � dire que le 3e param�re est de type const wchar_t* et non pas const char*.

    La solution serait de d�clarer la variable Indent de type char* ou peut-�tre qu'il existe une version de mysql_real_connect() Unicode.

  3. #3
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Utilise la fonction GetBuffer() de CString.

    �a devrait marcher � mon avis.

  4. #4
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut
    Citation Envoy� par TheGzD Voir le message
    Utilise la fonction GetBuffer() de CString.

    �a devrait marcher � mon avis.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    LPTSTR GetBuffer(int nMinBufLength);
    La fonction renvoie un LPTSTR , donc le probl�me reste le m�me ...

  5. #5
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Si t'aimes t'amuser tu peux convertir tes cract�res : http://msdn.microsoft.com/en-us/library/84x924s7(VS.80).aspx

  6. #6
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut
    Voici des fonctions que j'ai fait pour convertir facilement d'un jeu de caract�re � un autre utilisant WideCharToMultiByte() :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    size_t ConvertAnsiToUnicode(LPWSTR &lpDest, LPCSTR lpSrc, size_t cbSrcLen)
    {
    	size_t cbDestLen;
     
    	cbSrcLen = (cbSrcLen == -1) ? strlen(lpSrc) : cbSrcLen;
    	cbDestLen = MultiByteToWideChar(CP_ACP, 0, lpSrc, cbSrcLen, NULL, 0);
    	lpDest = new WCHAR[cbDestLen + 1];
    	MultiByteToWideChar(CP_ACP, 0, lpSrc, cbSrcLen, lpDest, cbDestLen);
    	lpDest[cbDestLen] = 0;
     
    	return cbDestLen;
    }
     
    size_t ConvertUnicodeToAnsi(LPSTR &lpDest, LPCWSTR lpSrc, size_t cbSrcLen)
    {
    	size_t cbDestLen;
     
    	cbSrcLen = (cbSrcLen == -1) ? wcslen(lpSrc) : cbSrcLen;
    	cbDestLen = WideCharToMultiByte(CP_ACP, 0, lpSrc, cbSrcLen, NULL, 0, NULL, NULL);
    	lpDest = new CHAR[cbDestLen + 1];
    	WideCharToMultiByte(CP_ACP, 0, lpSrc, cbSrcLen, lpDest, cbDestLen, NULL, NULL);
    	lpDest[cbDestLen] = 0;
     
    	return cbDestLen;
    }
     
    LPTSTR ConvertAnsiToT(LPCSTR lpSrc)
    {
    	LPTSTR lpDest;
     
    #ifdef UNICODE
    	ConvertAnsiToUnicode(lpDest, lpSrc);
    #else
    	lpDest = _tcsdup(lpSrc);
    #endif
    	return lpDest;
    }
     
    LPTSTR ConvertUnicodeToT(LPCWSTR lpSrc)
    {
    	LPTSTR lpDest;
     
    #ifdef UNICODE
    	lpDest = _tcsdup(lpSrc);
    #else
    	ConvertUnicodeToAnsi(lpDest, lpSrc);
    #endif
    	return lpDest;
    }

  7. #7
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    il y a CStringA et CStringW suivant le besoin ...

    @+

  8. #8
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut
    Citation Envoy� par stephdim Voir le message
    il y a CStringA et CStringW suivant le besoin ...

    @+
    Seulement � partir de VC++ 7.0

  9. #9
    Membre averti
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2009
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Par d�faut
    Merci � tous

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    R�ponses: 7
    Dernier message: 07/01/2004, 09h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    R�ponses: 11
    Dernier message: 21/10/2003, 16h54
  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