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 :

Acces à une base de données via ODBC


Sujet :

MFC

  1. #1
    jyg
    jyg est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Acces à une base de données via ODBC
    Dans un programme écrit en Visual C++ 6.0 utilisant les MFC j'ai besoin de mettre à jour des enregistrements de bases de données sur un serveur SQL distant.
    J'ai créé un objet CDatabase, ouvert la base avec la méthose OpenEx, puis créé un objet CRecordset utilisant la base précédente puis ouvert ce Recordset avec la méthode Open mais je ne vois pas comment accèder aux champs de ce Recordset, la méthode Edit plante sur un ASSERT m_nFields!=0, je ne sais pas ou est déclarée cette variable ni comment elle est initialisée mais en tout cas dans mon code elle a la valeur 0.
    Merci pour vos éclaircissement sur le sujet.

  2. #2
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut
    il te faut utiliser un CRecordset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    virtual BOOL Open(
       UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE,
       LPCTSTR lpszSQL = NULL,
       DWORD dwOptions = none 
    );
    où lpszSQL est une requete SQL du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Toto WHERE Titi='chaineTest'
    Qui va piano va sano...

  3. #3
    jyg
    jyg est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Pour ouvrir un CRecordset pas de problème, par contre je ne vois pas comment on l'utilise pour la mise à jour j'ai une méthode GetFieldValue pour lire le contenu d'un champ mais rien pour la modifier.
    L'appel des méthodes Edit ou AddNew plante sur mon CRecordset alors que l'appel de CanUpdate renvoie 1.

  4. #4
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut
    regarde
    Recordset: Adding, Updating, and Deleting Records (ODBC)
    dans la MSDN
    Qui va piano va sano...

  5. #5
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Salut, montre ton code où ça plante

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/12/2008, 12h14
  2. Accès à Une Base de données via le Net
    Par Ramdoulou dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/07/2008, 21h33
  3. Réponses: 3
    Dernier message: 08/06/2008, 22h08
  4. Récuperer les données d'une base de donnée via ODBC dans une variable
    Par arogues dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/04/2008, 16h27
  5. Accès à une base de donnée Sybase via ADODB
    Par pinpin44 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/10/2005, 18h14

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