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 :

CONNEXION SQL C++


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 16
    Par défaut CONNEXION SQL C++
    Bonjour,
    Voila depuis quelques jours je me prends la tete sur la connexion à un serveur SQL.
    J'ai crée une source de donnée ODBC de nom Driver Extraction qui utilise le pilote SQL SERVER.
    Ma base de données se nomme ExtractionXMLPFIG sur le serveur SERVEURSQL.
    Pour me connecter j'ai essayé quelques trucs dont le dernier:

    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
    HENV henv; //descripteur d'environnement 
     
    HDBC hconn; //descripteur de connexion 
    SQLRETURN rtcd;
    char *c;
    char szbuff[255];
    UCHAR errmsg[100];
    HSTMT stmt;//
    char buf[100];
    RETCODE code;
     
    c = strcpy(szbuff, "DRIVER=SQL Server;SERVER=SERVEURSQL;DATABASE=ExtractionXMLPFIG;UID=sa;PWD=laurent;");
     
    rtcd = SQLDriverConnect(hconn, 0, (SQLCHAR*)szbuff, c - szbuff + 2,
    0, 0, 0, SQL_DRIVER_NOPROMPT);
     
    if(rtcd!=SQL_SUCCESS) { 
    SQLError(henv,hconn,SQL_NULL_HSTMT,NULL,NULL,errmsg,sizeof(errmsg),NULL);
    cout<<"erreur connexion"<<endl;
    return 1;
    }
    Mais la connection ne se fait pas et je n'arrive pas a comprendre?
    Si quelqu'un peut m'aider ca serait sympa!
    Merci d'avance
    @+

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Ben moi pour me connecter à une base de donnée j'utilise la librairie ADOLib.lib

    Elle est tres simple d'utilisation tu trouvera son fonctionnement à cette adresse : http://www.adolib.be.ft

    Je peu pas trop t'aider dans ton code mais je te conseil de l'utiliser tu ne le regretera pas

  3. #3
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    ca fait énormément longtemps que je n'ai plus fait d'allocation dynamique.. mais tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char *c; 
     
    c = strcpy(szbuff, "DRIVER=SQL Server;SERVER=SERVEURSQL;DATABASE=ExtractionXMLPFIG;UID=sa;PWD=laurent;");
    tu ne dois pas allouer dynamiquement de la mémoire à ta variable 'c' avant?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    je ne connais pas ton context de programme ,mais avec les objets c'est mieux !
    apres:
    strcpy retourne la chaine de destination.
    donc c==szbuff -> c - szbuff + 2 == 2 .
    du coup tes paremetres sont ils correctes ?



  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Essaie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CDatabase	db;
    CString myconnection;
    myconnection = "DSN=ExtractionXMLPFIG;UID=sa;PWD=laurent";
    BOOL res = db.OpenEx (myconnection,CDatabase::noOdbcDialog);
    return true ? res != 0 : false;
    A tout hasard, ton UID et ton PWD ne sont pas inversés ?

  6. #6
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 16
    Par défaut
    Merci pour ces reponses:
    Alors je me suis tourné vers adolib qui semble génial or mon programme est un programme sous console et apparement il faut que ca soit MFC :
    j'obtiens cette erreur que je n'arrive pas a résoudre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\Microsoft Platform SDK\Include\mfc\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
    Ensuite j'ai réflechi a ce que tu as écris farscape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c==szbuff -> c - szbuff + 2 == 2
    je n'arrive pas a comprendre ce que tu as écris!!!
    les "==" me semblent bizarre je n'arrive pas a voir ou cela me mene.
    Ma premiere question est est ce que les paramètres sont correctes aussi.

    edit1:
    -J'ai teste avec le CDataBase mais il faut que ca soit une appli MFC?
    que dois je inclure comme bibliothèque?
    -Mon programme extrait des données de fichiers XML et les insere dans une base de donnée SQL SERVER.
    Pas besoin d'interface

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Oui ADO est fourni avec les MFC, donc dans les settings, il faut avoir Use MFC As sharing dll ou static library

  8. #8
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\Microsoft Platform SDK\Include\mfc\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
    En réglant les settings dans les deux cas Static et Sharing dll!!

  9. #9
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\Microsoft Platform SDK\Include\mfc\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
    Ben il te dise que windows.h est deja inclus.
    sans vouloir trop m'avancer ca voudrais dire que windows.h est aussi inclus dans ADOLib or pour y remedier essayer de mettre en commentaire le windows.h deja present par défaut dans tes includes ca pourrais peu etre y remedier.
    Enfin bon c'est que de la déduction j'ai jamais rencontré ce probleme.

    Aussi sur le site de la libraire il me semble qu'il y a aussi un exemple en mode console.

  10. #10
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Citation Envoyé par metek
    Ensuite j'ai réflechi a ce que tu as écris farscape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c==szbuff -> c - szbuff + 2 == 2
    je n'arrive pas a comprendre ce que tu as écris!!!
    les "==" me semblent bizarre je n'arrive pas a voir ou cela me mene.
    Ma premiere question est est ce que les paramètres sont correctes aussi.
    char * strcpy ( char * dest, const char * src );

    Copy string.
    Copies the content pointed by src to dest stopping after the terminating null-character is copied.
    dest should have enough memory space allocated to contain src string.

    Parameters.

    dest
    Destination string. Should be enough long to contain string2.
    string2
    Null-terminated string to copy.

    Return Value.
    dest is returned.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dest - dest + 2 = 2 // cf. strcpy
    c = szbuff
    ---> c - szbuff + 2 = 2
    ---> ton paramètre vaut toujours 2

  11. #11
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 256
    Par défaut
    Salut,

    va voir ce lien ....
    J'ai essayé, ça marche sans problèmes.

    http://www.lamsade.dauphine.fr/~manouvri/

    Après, il faut que tu navigue dans le site mais tu vas trouver un
    exemple complet et qui fonctionne.

Discussions similaires

  1. [C#] Problème de connexion sql server 2000
    Par rabbiwan dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/12/2004, 16h21
  2. [CE10 Pro] Erreur Connexion SQL pour etats publiés
    Par L.nico dans le forum Connectivité
    Réponses: 1
    Dernier message: 09/12/2004, 17h16
  3. Connexion à SQL Server avec ASP
    Par ayobo dans le forum ASP
    Réponses: 3
    Dernier message: 25/05/2004, 17h06
  4. Connexion SQL Server
    Par Bart51 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/05/2004, 10h49
  5. connexion sql serveur
    Par DiJiRiDouS dans le forum ASP
    Réponses: 10
    Dernier message: 16/09/2003, 16h14

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