Utilisation de mysql et de borland c++ builder

Résolu/Fermé
brice13960 Messages postés 12 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 21 mai 2013 - Modifié par brice13960 le 20/05/2013 à 12:50
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 23 mai 2013 à 10:12
Bonjour a toutes et a tous,

Voila, je vous écris aujourd'hui car j'ai un gros soucis, je travail depuis plusieurs mois sur un projet de gestion de parking grâce a une IHM (interface homme/machine) et une base de données mysql. au lancement de l'IHM, j'ai une connexion a la base de données qui s'initialise, malheureusement, je voudrais accéder a une seconde fiche qui me permettrai d'afficher les informations de la bdd via la connexion déjà initialisé auparavant, mais je n'y arrive pas, j'ai même essayé de déconnecté la bdd au lancement de la seconde fiche, et de l'initialisé au moment du lancement de la seconde fiche, mais j'ai une erreur E2303 qui m'indique le fichier mysql_com.h, et qu'un nom de type est attendu ligne 291.

j'espère que quelqu'un arrivera a m'aider a trouver la solution.

Je vous souhaite une bonne journée.

BRCY

A voir également:

7 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 749
20 mai 2013 à 13:12
À quoi correspond ton erreur E2203 ? Peux tu nous reporter le message d'erreur complet ?

À ta place j'essaierais une démarche progressive, quitte à repartir d'un programme minimal pour faire des tests.

1) Tenter de se connecter à la base, vérifier que la connexion est correcte en contrôlant le type de retour. Si ça ne marche pas vérifie le login, le mot de passe, que la base est accessible depuis un client mysql lancé depuis la même machine etc.

2) Une foisl a connexion établie, fais une requête "simple" et vérifie que tu arrives à récupérer son résultat (par exemple "select 1;").

3) Une fois que tu y parviens, vérifie que tu arrives à interroger une table de ton schéma mysql (par exemple "select * from ma_table;").

4) Enfin tente ta requête finale.

Une fois qu'on aura tranché où ça cloche dans ces 4 étapes on y verra plus clair. Après il faudrait nous en dire un peu plus sur comment marche ton application (où la connexion est ouverte, quand elle est utilisée dans ton programme, etc...). Par exemple si ton programme est un démon (une tâche qui tourne arrière plan), il est important de préserver le file descriptor associé à la connexion au moment où tu démonises ton programme.

Bonne chance
0
brice13960 Messages postés 12 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 21 mai 2013
20 mai 2013 à 19:32
bonjour mamiemando,

merci pour votre réponse, je vais un peu mieux expliquer mon problème.

Sur la "fiche" principal de mon projet, la connexion à la base de données mySQL fonctionne, ainsi que toutes les requêtes SQL que j'ai eu besoins. le problème étant que lorsque je passe sur une seconde "fiche" de mon projet, celle-ci n'a plus de connexion a mySQL (la connexion étant rester sur la première fiche), et c'est en essayant de me connecter a partir de la seconde fiche que j'ai une erreur E2203 sur le fichier de la bibliothèque mysql_com.h m'indiquant qu'un nom de type est attendu.

J'ai essayé cet après midi de passer le pointeur de structure *mysql d'une fiche a une autre et aucun résultat probant pour le moment.

Merci encore de votre réponse.

bonne soirée.

brice13960
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 749
21 mai 2013 à 00:59
Je pense que c'est un problème un peu similaire à celui que je t'ai indiqué. Déjà histoire de fixer les idées, qu'appelles-tu une "fiche" ? C'est une fenêtre ? Tu utilises une librairie particulière ?

Je ne connais pas trop ton projet, mais j'imagine que tu as un file descriptor ou équivalent dans ta première fiche qui te sert à faire des requêtes à la base. C'est lui que tu dois transmettre à la deuxième "fiche".

Je ne connais pas ton code mais peut être que tes deux fiches peuvent hériter d'une même classe qui stockerait ce file descriptor en tant que membre statique.

Bonne chance
0
brice13960 Messages postés 12 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 21 mai 2013
21 mai 2013 à 09:02
bonjour mamiemando,

oui, la fiche est une nouvelle fenêtre sous borland c++ builder, et la librairie particulière et mysql.h.

par contre, je vais essayer la transmission de du file descriptor.

je vous tiens bien sur au courant de mon avancement.

Merci encore et bonne journée a vous.

brice13960
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 749
21 mai 2013 à 10:04
Ok donc d'après ce que je vois ici :
https://lfe.developpez.com/BCBmySQL/

ce que j'appelle file desciptor (c'est ce qu'on aurait sous linux) est apparemment en capsulé dans ton objet MYSQL, c'est donc lui qu'il faut transmettre d'une fiche à l'autre. Donc comme je proposais plus haut, si tes deux fiches héritent d'une même classe qui a un membre statique de type MYSQL, ça devrait marcher.

Bonne chance
0
nar6du14 Messages postés 459 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 7 décembre 2013 64
23 mai 2013 à 02:00
un externC{} n'est il pas necessaire??

vas sur le site de MYSQL et cherche "C connector", le C API de connexion a la base MYSQL
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 749
23 mai 2013 à 10:12
@nar6du14

Non extern "C" sert à importer une fonction C en C++. Neuf fois sur dix c'est inutile si tu inclues le bon header (par exemple <cstdio> au lieu de <stdio.h>, <cstdlib> au lieu de <stdlib.h>, etc...).

Et sinon le mot clé extern sert à déclarer une fonction qui n'est pas déjà déclarée dans un .h, mais qui est implémenté dans un binaire (.o, .so, .a) avec lequel le programme est linké.

Bonne chance
0