salut !!
g telechargé Mysql++ mais je sais pas m'en servir : comment on fait pour se connecter a une base de données Mysql ? peut-importe l'hebergeur !
esuite, ajouter des choses dans la BDD.
merci
salut !!
g telechargé Mysql++ mais je sais pas m'en servir : comment on fait pour se connecter a une base de données Mysql ? peut-importe l'hebergeur !
esuite, ajouter des choses dans la BDD.
merci
Tu trouveras tout dans la doc de mysql++, mais voici tout de même un exemple tiré de cette doc
Si cela ne va toujours pas, tu peux utilise ADOLib. Voici aussi un exemple :
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
50
51
52
53
54 The following example demonstrates how to open a connection, execute a simple query, and display the results. The code can be found in the file simple1.cc which is located in the examples directory. #include <iostream> #include <iomanip> #include <sqlplus.hh> int main() { Connection con("mysql_cpp_data"); // The full format for the Connection constructor is // Connection(cchar *db, cchar *host="", // cchar *user="", cchar *passwd="") // You may need to specify some of them if the database is not on // the local machine or you database username is not the same as your // login name, etc.. Query query = con.query(); // This creates a query object that is bound to con. query << "select * from stock"; // You can write to the query object like you would any other ostrem Result res = query.store(); // Query::store() executes the query and returns the results cout << "Query: " << query.preview() << endl; // Query::preview() simply returns a string with the current query // string in it. cout << "Records Found: " << res.size() << endl << endl; Row row; cout.setf(ios::left); cout << setw(17) << "Item" << setw(4) << "Num" << setw(7) << "Weight" << setw(7) << "Price" << "Date" << endl << endl; Result::iterator i; // The Result class has a read-only Random Access Iterator for (i = res.begin(); i != res.end(); i++) { row = *i; cout << setw(17) << row[0] << setw(4) << row[1] << setw(7) << row["weight"] // you can use either the index number or column name when // retrieving the colume data as demonstrated above. << setw(7) << row[3] << row[4] << endl; } return 0; }
Bien à toi,
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 //Définition du connect string CString sProvider("DSN=mySQL"); ADOConnect myConn; // Définition d'un objet de type ADOConnect pour établir la connexion avec la DB // Connexion à la base de données if (!myConn.Connect(sProvider)) { cout << myConn.GetError() << endl; //Affichage de l'erreur en cas de problème exit (0); } else { cout << "connected" << endl; //la connexion à réussie // Selection de la base ADOCommand myCmd(myConn.ADOConn, "use prs"); myCmd.Execute(); myCmd = "update prts set prts_sid = round(prts_sid)"; myCmd.Execute(); myConn.commit(); ADOSelect mySel; //Définitin d'un object ADOSelect pour exécuter une requête //Ouverture du recordset if (!mySel.Open(myConn.ADOConn, "select * from user limit 3000")){ cout << mySel.GetError() << endl; // Affichage de l'erreur } else { //Ouverture réussie //Lecture des records jusqu'a ce que EOF soit atteint while (mySel.Fetch()) { //Affichage des colonnes du recordset. for (int i=0; i < mySel.GetColCount(); i++) cout << (LPCSTR)(_bstr_t)mySel.GetField((short)i) << ' ' ; cout << endl; } } //Déconnexion de la db myConn.Disconnect(); }
mreci beaucoups !
j'avoue ne pas avoir compris, dans les ADOLib, comment specifier la clocation de la base de donné : est-ce bien CString sProvider("DSN=mySQL"); ?
DSN=mySQL est un ConnectString défini via le panneau de configuration ODBC32 ou bien avec myODBC que tu trouves sur le site de mySQL. Ce dernier est très facile à utiliser.
Bien à toi
Mettons que je veuille me connecter a une BDD MySql sur Kilio , je faitcomment pour dire que c'est sur kilio ?
alors voila, j'ai fait un programme (enfi, juste modifié l'exemple)
il se compile, se lance, mais il me dit su'il y a une erreur : primo je ne vois ce que c'est (je m'y commais pas trop en SQL...) et secondo, je comprend rien au pogramme.
tout betement, comment je fais pour me connecter a une BDD ? pour lui envoyer une requete ?
voici mon code :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 #include <iostream> #include <sys/stat.h> #include <iomanip> #include <mysql++> int main() { Connection con(use_exceptions); // The full format for the Connection constructor is // You may need to specify some of them if the database is not on // the local machine or you database username is not the same as your // login name, etc.. try { con.real_connect("INI","127.0.0.1","root","",3306,(int)0,60,NULL); //Connection con("mysql_cpp_data"); Query query = con.query(); // This creates a query object that is bound to con. query << "INSERT INTO `names` (`Nom`) VALUES ('Moi'); "; // You can write to the query object like you would any other ostrem Result res = query.store(); // Query::store() executes the query and returns the results cout << "Query: " << query.preview() << endl; // Query::preview() simply returns a string with the current query // string in it. cout << "Records Found: " << res.size() << endl << endl; Row row; cout.setf(ios::left); cout << setw(17) << "Item" << setw(4) << "Num" << setw(7) << "Weight" << setw(7) << "Price" << "Date" << endl << endl; Result::iterator i; // The Result class has a read-only Random Access Iterator for (i = res.begin(); i != res.end(); i++) { row = *i; cout << setw(17) << row[0] << setw(4) << row[1] << setw(7) << row["weight"] // you can use either the index number or column name when // retrieving the colume data as demonstrated above. << setw(7) << row[3] << row[4] << endl; } } catch (BadQuery er){ // handle any connection // or query errors that may come up cerr << "Error: " << er.error << endl; return -1; } catch (BadConversion er) { // we still need to cache bad conversions incase something goes // wrong when the data is converted into stock cerr << "Error: Tried to convert \"" << er.data << "\" to a \"" << er.type_name << "\"." << endl; return -1; } return 0; }
Eh bien ca marche !!!!!!
bon une petite question :
j'ai ma requete : "INSERT INTO `names` (`Nom`) VALUES (ouech);"
ou ouech est une variable char.
vos aurez devinez que auparavant, j'ai un code qui me definie la valeur de ouech (cin >> ouech). Bon eh bien je sai qu'en SQL, pour utiliser la valeur d'une variable on met %ma_variable mais la ca ne marche pas. donc je vous demande comment ajouter dans la BDD une valeur non-definie avant la compilation masi lors de l'exeution : mon code :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 #include <iostream> #include <sys/stat.h> #include <iomanip> #include <mysql++> int main() { char ouech[255]; char requete[1024]; cout << "salut !! Entrez le nom que voulez-vous ajouter dans la base de données :\n"<<endl; cin >> ouech; strcpy(requete,"INSERT INTO `names` (`Nom`) VALUES (ouech);"); //strcpy(requete,"insert into %5:table values (%q0, %q1, %2, %3, %q4);"); Connection con(use_exceptions); // The full format for the Connection constructor is // You may need to specify some of them if the database is not on // the local machine or you database username is not the same as your // login name, etc.. try { con.real_connect("INI","127.0.0.1","root","",3306,(int)0,60,NULL); Query query = con.query(); // This creates a query object that is bound to con. query << requete; // You can write to the query object like you would any other ostrem Result res = query.store(); // Query::store() executes the query and returns the results /* cout << "Query: " << query.preview() << endl; // Query::preview() simply returns a string with the current query // string in it. cout << "Records Found: " << res.size() << endl << endl; Row row; Result::iterator i; // The Result class has a read-only Random Access Iterator for (i = res.begin(); i != res.end(); i++) { row = *i; cout << setw(17) << row[0] << setw(4) << row[1] << setw(7) << row["weight"] // you can use either the index number or column name when // retrieving the colume data as demonstrated above. << setw(7) << row[3] << row[4] << endl; }*/ } catch (BadQuery er){ // handle any connection // or query errors that may come up cerr << "Error: " << er.error << endl; return -1; } catch (BadConversion er) { // we still need to cache bad conversions incase something goes // wrong when the data is converted into stock cerr << "Error: Tried to convert \"" << er.data << "\" to a \"" << er.type_name << "\"." << endl; return -1; } return 0; }
quand on se creuse les meninges un peut, on arrive vite a nos fin... c'est bon, j'ai resolu mes pb.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager