Bonjour je cherche un tuto qui expliquerai comment créer une petite appli capable de se connecter sur une BDD mysql 5,
merci
Version imprimable
Bonjour je cherche un tuto qui expliquerai comment créer une petite appli capable de se connecter sur une BDD mysql 5,
merci
Laisse moi t'expliquer comment se site fonctionne, disons que tu cherches un tutorial, eh bien tu va dans la section tutoriel:
http://c.developpez.com/cours/
Disons que tu programmes avec Borland C++ Builder, tu vas dans la section BCB:
http://c.developpez.com/cours/#tutos-bcb
Disons que tu veux utiliser un BD MySQL, tu clique sur "Utilisation de l'API mySQL avec Borland C++ Builder " et tu te retrouves dans:
http://lfe.developpez.com/BCBmySQL/
En plus, si tu as des problèmes avec ces explications, tu peux avant de poser des questions faire une recherche sur le forum de discussion:
http://www.developpez.net/forums/search.php
Si tu ne trouves rien, alors tu poses la question dans le bon forum :D
oui, en faite j'ai suivi le tuto
http://lfe.developpez.com/BCBmySQL/
mais sa ne fonctionne pas, ces pour sa que j'aurais souhaiter avoir un source de se projet, parceque au niveau de l'etape :
- 1.3. Mise à jour des fichiers d'en-tête
je n'est pas le fichier mysql.h
mercie.
C'est normal, si tu ne l'as pas installé!Citation:
Envoyé par boopix
Est-ce que tu as téléchargé les bon fichiers?
Téléchargement (Je te conseil "Windows downloads Without installer"):
http://dev.mysql.com/downloads/mysql/5.0.html#downloads
Documentation sur l'API:
http://dev.mysql.com/doc/refman/5.0/fr/mysql-apis.html
En passant, j'ai pris ma réponse d'un post auquel j'avais répondu:
http://www.developpez.net/forums/sho...d.php?t=265578
Tu n'as pas bien lus ce que j'avais dis:
Citation:
Envoyé par Crayon
Merci pour ton aide crayon j'ai visiter les ancien post, je test et je vous tiens au courant...
Salut crayon j'éspere que tu est encore là, alors voilà l'erreur rencontrer
[Lieur Erreur] Error: 'C:\DOCUMENTS AND SETTINGS\BOOPIX\BUREAU\TEST C++\LIBMYSQL.LIB' contient un enregistrement OMF incorrect, type 0x21 (éventuellement COFF)
j'ai eu le meme qu'un membre avait eu, et j'ai fais comme tu as dis remplacer les LIST par MYSQLLIST, mais aprés il m'affiche l'erreur que je t'est indiquer plus haut.
1) Est-ce que tu as mis la DLL dans le même dossier que l'exécutable?
2) Est-ce que tu as mis le fichier lib dans ton projet BCB?
oui la dll et bien a coter et j'ai bien ajouter la librairie...
voici la modif sur my_list.h
quand au fichier mysql.hCode:
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 #ifndef _list_h_ #define _list_h_ #ifdef __cplusplus extern "C" { #endif typedef struct st_list { struct st_list *prev,*next; void *data; } MYLIST; typedef int (*list_walk_action)(void *,void *); extern MYLIST *list_add(MYLIST *root,MYLIST *element); extern MYLIST *list_delete(MYLIST *root,MYLIST *element); extern MYLIST *list_cons(void *data,MYLIST *root); extern MYLIST *list_reverse(MYLIST *root); extern void list_free(MYLIST *root,unsigned int free_data); extern unsigned int list_length(MYLIST *); extern int list_walk(MYLIST *,list_walk_action action,gptr argument); #define list_rest(a) ((a)->next) #define list_push(a,b) (a)=list_cons((b),(a)) #define list_pop(A) {MYLIST *old=(A); (A)=list_delete(old,old) ; my_free((gptr) old,MYF(MY_FAE)); } #ifdef __cplusplus } #endif #endif
d'ou peut bien provenir l'erreur.Code:
1
2
3 L 284 - MYLIST *stmts; L 673 - MYLIST MYlist;
J'ai vue que tu avais poster ta question dans un autre post. Si tu lis attentivement les règlements du forum tu vas y lire que c'est interdit:
http://www.developpez.net/forums/showthread.php?t=7
Tu peux aussi lire les règlement du forum BCB:
http://www.developpez.net/forums/showthread.php?t=3340
désolé, je le deleste de suite...:oops:
Est-ce que tu as fais la mise à jour des fichiers d'en-tête :
http://lfe.developpez.com/BCBmySQL/#L1.3
Est-ce que tu as fais la mise à jour du projet:
http://lfe.developpez.com/BCBmySQL/#L1.4
oui sa aussi sa était fait, la question que je me pose et au niveau de my_list.h, car tout les LIST majuscule on était remplacer par des MYLIST, et deux ligne de mysql.h ont etait aussi changer.....
voir post plus haut....
J'ai oublier de te demander si tu utilisais la lib dans du fichier zip que tu as téléchargé ou si utilisais celle que tu a créé toi avec la commande:
implib libmySQL.lib libmySQL.dll
Comme il est mentionné ici:
http://lfe.developpez.com/BCBmySQL/#L1.2
Il important d'utiliser la DLL en version Release et NON celle en Debug
alors voilà ces vrai que j'utiliser la librairie du .zip et que aprés l'avoir recompilé je n'est plus d'erreur, enfin si toujours une mais la ces au niveau de l'execution du programme,
ces a dire que je fais un test rapide et sa me donne ;
voilà comment je teste:Code:
1
2 violation d'acces à l'adresse 1000482f dans le module 'LIBMYSQL.DLL'. Lecture à 'adresse 0000032c
Code:
1
2
3
4
5
6
7
8
9 MYSQL *mySQL; if (!mysql_real_connect(mySQL, "127.0.0.1", "root", "ga950106", "test", 0, NULL, 0)) { Label1->Caption = "Connexion échouer"; } else { Label1->Caption = "Connexion reussi"; }
Je me reprend crayon, ces OK de mon coter, l'erreur et de moi, ces bon j'ai trouver l'erreur.....
merci beaucoup pour ta précieuse aide, merci,merci.... :yaisse2:
Content de voir que tout fonctionne. :D
Je ne serais pas oubliger de te donner le lien pour FAQ:
Comment résoudre l'erreur Windows : "violation d'accès à l'adresse XXXXXXXX"
Peux-tu me dire comment tu as réglé ta dernière erreur stp ?
J'en suis au même point que toi ^^
Citation:
violation d'acces à l'adresse 1000482f dans le module 'LIBMYSQL.DLL'. Lecture à 'adresse 0000032c
if (!mysql_real_connect(mySQL, "127.0.0.1", "root", "ga950106", "test", 0, NULL, 0))
Probablement le port defini ici sur 0 ( en rouge )
Merci je vais regarder ça :ccool:
Encore une chose, est-il possible de se connecter à une base de données en ligne avec cette méthode ?
Que ce soit l api ou par composant , il faut que l hebergeur le permette , ce n est pas le cas pour free par exemple , en effet un bon nombre n autorise la connection que depuis leur domaine ( page php , ... ) .
Pourtant j'arrive à éditer ma base de données à partir de mon site personnel en passant par une authentification.
Est-ce que c'est du fait que mon site soit hébergé au même endroit que ma BDD ?
Si oui, dans ce cas ma seule solution reste de stocker ma BDD en local non ?
Imaginons qu'elle soit en local, est-il possible à partir de C++ Builder d'envoyer la BDD actualisée sur le serveur de l'hébergeur ?
Merci d'avance :)
je comprends pas trop
depuis une page de ton site , tu peux acceder à ta bdd ?
Ben c est normal
Sinon oui tu peux la transferer ( si bdd distante connectable )
Il suffit de generer une requete insert à partir de select
Là c est du sql , c est assez simple
J'explique :
Je paye un hébergement chez Hebergeur-Discount avec un serveur et une base de données MySQL à ma dispostion (que je peux modifier via PhpMyAdmin).
J'ai créé un site que j'ai hébergé dessus donc. Et dans ce site j'ai mis en place une section privé pour ce connecter à la BDD avec :
A partir de là je peux modifier ma BDD en ligne avec les commandes SQL.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 if (isset($_POST['identifiant']) && isset($_POST['motdepasse'])) { // on teste si le login et le mot de passe sont valides if ($_POST['identifiant'] == $user_econome && $_POST['motdepasse'] == $passwd_econome ) { // dans ce cas, tout est ok, on peut démarrer notre session // on la démarre session_start (); // on enregistre les paramètres de notre utilisateur comme variables de session // notez bien que l'on utilise pas le $ pour enregistrer ces variables $_SESSION['utilisateur_db'] = $_POST['identifiant']; $_SESSION['motdepasse_db'] = $_POST['motdepasse']; $_SESSION['host_db'] = $host; $_SESSION['nom_db'] = $dbname;
Bon maintenant je voudrai faire la même opération par un programme C++ Builder.
J'ai déjà mis en place les librairies mysql grâce à votre tutoriel.
Puis dans mon programme je me connecte à cette BDD.
Là impossible de me connecter, à priori c'est normal d'après ce que tu m'as dis.
Ma solution est donc :
- Récupérer ma BDD (car j'ai déjà créé des tables) à partir de PhpMyAdmin
==> Sous quel format ?
- Me connecter grâce à mon programme sur la BDD que j'ai exporté.
==> Dois-je installer des composants Mysql/Easyphp ... ?
- Renvoyer la BDD modifiée pour remplacer l'ancienne grâce à un bouton de mon programme histoire de faire une sorte de mise à jour.
J'espère que c'est plus clair pour toi comme ça ^^
Merci de m'éclairer si jamais je fais fausse route :ccool:
Përsonnellement , j utilise le serveur mysql d easyphp
Et lorque je veux faire un backup ,je vais dans l interface locale de phpmyadmin
Je selectionne ma bdd à gauche et clique sur exporter à droite
puis je coche structure et données
Enfin je clique sur executer , le navigateur charge une page avec des requetes
que je pourrais executer dans un phpadmin distant
Ne pas oublier de faire sauter les commentaires , ....
Arf je viens de découvrir que le port pour me connecter à mon serveur change en permanence !
Donc l'idée de me connecter directement sur ma BDD en ligne c'est mort :(
Me reste plus qu'à travailler en local, et j'ai une question à ce sujet :
Je veux que mon programme soit portable, qu'on puisse le transférer d'un PC à un autre pour l'utiliser sans s'amuser à installer easyphp & mysql sur chaque poste !
Y a t-il un moyen d'avoir une BDD dans le même répertoire que l'application que l'on pourra modifier par cette application ?
J'ai vu que la solution d'une BDD sous Acces était souvent utilisée. Est-il possible de l'adapter à mon idée ?
Est-ce que tout les PC qui vont utiliser le programme sont sur le même réseau local? Si oui, installe un serveur avec MySQL qui roule dessus.
Si non, alors là tous les ordinateurs vont avoir leur propre base de données. Donc' les données ne sont pas partagé parmi les différents postes de travail.
Je te conseillerai mysqlite , c est des bases de données utilisées pour firefox par exemple si c est une base de données par poste
Portable et leger
C'est en plein à ce que je pensais, si tu es intéressé à SQLite va lire mon mini tutoriel: http://www.developpez.net/forums/d52...et-cppbuilder/
j ai decouvert çà , il y a pas longtemps
et j ai une question
j utilise soit l extension firefox ou sqlite3.exe ( c est une console ) pour creer ma base , y a t il un moyen de le faire directement à partir de mon projet ?
J ai pas trouvé pour le moment
Petite astuce pour compresser et nettoyer les blancs de vos bases
A mettre dans un batch
@FOR %%G IN (*.sqlite) DO ( sqlite3 %%G "VACUUM" )
exit
C est valable egalement pour les bases de firefox ou thunderbird
Exemple firefox , allez dans un repertoire quasiment identique
C:\Users\"mon nom d user"\AppData\Roaming\Mozilla\Firefox\Profiles\3r178ax1.default\
Moi j'en reviens à mon projet, en fait je fais ce projet pour mon beau-frère qui monte son entreprise, donc l'idéal serait qu'il ouvre le dossier du programme, qu'il lance l'application et ainsi éditer sa base de données chez lui donc pas dans le même réseau que moi ^^
Donc pour moi l'idéal serait d'avoir juste un fichier pour sa BDD dans le dossier du programme, et que ce programme édite cette BDD.
D'où ma demande de tout à l'heure, ne vaut-il mieux pas passer par une BDD sous Access ?
Ben à toi de voir si access te semble plus accessible que sql
C est pas tres dur , crois moi
Et encore faut il avoir les licences pour access
C'est simple, si tu utilises sqlite3_open_v2() il faut utiliser le flag (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE), par défaut c'est ce flag qui est utilisé pour sqlite3_open() et sqlite3_open16().
Pour plus de détail: http://www.sqlite.org/c3ref/open.html
Ensuite il suffit de faire une requête SQL pour créer une table avec CREATE TABLE.
Et voilà!
Y a une tutoriel ici pour créer une base sous Access et y accéder par C++ Builder ?
Va voir la FAQ: http://cpp.developpez.com/faq/bcb/?p...sedonneeaccess
cool
desolé de ne pas avoir pu repondre plutot ( les liens etaient ré-écriits malgré une interdiction dans le fichier HOSTS ) , j etais infecté
parcontre eviter d installer smart security d eset sur seven
hier la version vista ( pas fait attention ) m a fait sauter une multitude de fichiers dans system32 , ce qui a eu pour consequence d empêcher ma session de s initialiser , que ce soit en invite de commande ou en mode normal