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 :

Ecrire dans une base access


Sujet :

MFC

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Ecrire dans une base access
    J'ai une base de donnée access connecté a mon application visual c++6
    J'ai réussi a effectué des requetes sql via un recordset pour connaitre le contenu d'un champ
    Le problème c'est que je ne sais pas comment faire pour effectué une modification de champs ou pour ajouter un champ

    Quelqu'un peut il me donner une piste??
    merci d'avance

  2. #2
    Débutant
    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
    Points : 324
    Points
    324
    Par défaut
    Ben tu fais pareil sauf que cette fois-ci au lieu de faire des SELECT tu fait des UPDATE et des INSERT INTO

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    J'ai essayé mai je n'ai pas réussi

    Pourrai tu me fournir un exemple pour que je puisse avoir le format de la requete?
    Je m'explique une requete c'est : select [champ] from [table] where [champ2] = "truc"
    peut tu me fournir un exemple de ce type?

  4. #4
    Débutant
    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
    Points : 324
    Points
    324
    Par défaut
    ben voici ce sur quoi je bosse en ce moment :

    J'utilise pour me conencter à ma base MySql la librairie ADOLib.h.
    Elle est tres pratique et tres simple d'utilisation

    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
     
     
    Déclaration de ma connexion à ma base
    ADOConnect &myConn;
     
    Instanciation
    myConn = new ADOConnect(); 
     
    Ma chaine de conenxion à ma base
    	CString sProvider = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=CS;UID=root;PASSWORD=;OPTION=2";	
     
     
     
    	// Connexion à la base de données
    	if (!myConn->Connect(sProvider))
    	{ 
    		cout << myConn->GetError() << endl; //Affichage de l'erreur en cas de problème
    		AfxMessageBox("Y a une merde ca connecte pas");
    		exit (0);
    	}
    	else
    	{
    		AfxMessageBox("Je suis connecté à la base");
    	}
     
     
    			ADOSelect mySel; //Définitin d'un object ADOSelect pour exécuter une requête
     
    		//Ouverture du recordset
    		if (!mySel.Open(myConn->ADOConn, "select * from carte")){
    			cout << mySel.GetError() << endl; // Affichage de l'erreur
    		} else {
    			//Ouverture réussie
     
    AfxMessageBox("ma requete à bien été executé");
    			mySel.Close(); 
    		}
    ca c'est pour l'insert ensuite pour le update c'est pareil t'a qu'a faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mySel.Open(myConn->ADOConn, "Update <NOMTABLE> set <CHAMP> =  valeur"))
    Voila c'est pas plus compliqué

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    le souci c'est que je travail pas sous mysql j'utilise access
    je n'ai pas réussi a mettre en oeuvre mon update en utilisant ce que tu a utilisé
    Voici commen je procède pour envoyé une requette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       // Ouverture de la base 
       // Database est ma source de donnée
       maBase.OpenEx("DSN=Database;UID=admin",
                                CDatabase::noOdbcDialog|CDatabase::useCursorLib);
        // Requête sql
       CString Requete = "SELECT [Nom] FROM [TableTest]";    
     
       // Déclaration d'un objet de type recordset
       CRecordset myRecordset(&maBase);
     
       // Ouverture du recordset
       myRecordset.Open(CRecordset::forwardOnly, Requete);
    Ensuite je recupere la "reponse" de ma requete

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    A mon avis, si tu fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     myRecordset.Open(CRecordset::dynaset, Requete);
    ça devrait marcher, vu l'aide MSDN :
    CRecordset::forwardOnly A read-only recordset with only forward scrolling.
    Ce qui convient parfaitement pour un SELECT mais pas pour un UPDATE

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Le problème c'est que je ne peut pas travailler en dynaset
    J'ai un autre souci si j'ouvre avec forwardOnly ca fonctionne parfaitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	myRecordset.Open(CRecordset::forwardOnly, Requete);
    Mais si j'essai de mettre CRecordset::snapshot cela ne fonctionne pas pourquoi???
    J'ai une erreur qui dit tentative infrutueuse d'ouverture de table, colonne a extraire introuvable a l'endroit spécifié.

    D'autre part je n'arrive pas à utilisé les commande sql UPDATE et INSERT INTO dans mon application

Discussions similaires

  1. [Débutant] Ecrire dans une base de donnée access
    Par Loic4891 dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/02/2014, 18h28
  2. Ecrire dans une base Access
    Par mchurlet dans le forum VB.NET
    Réponses: 4
    Dernier message: 19/03/2012, 20h30
  3. Lire dans un Fichier Excel et Ecrire dans une base Access
    Par tarik75 dans le forum Modélisation
    Réponses: 1
    Dernier message: 03/09/2008, 21h10
  4. [C#] Insertion dans une base Access .mdb
    Par borgfabr dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/03/2005, 15h30
  5. bug dans une base Access
    Par bizouard dans le forum Access
    Réponses: 5
    Dernier message: 29/12/2003, 12h41

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