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.
Partager