Delphi 2009 et MySQL

Signaler
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
26 juin 2009
-
Messages postés
2
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
22 février 2010
-
Bonjour,

Après plusieurs jours de recherches, des cheveux en moins, mon chien qui hurle à la mort et pleins d'autres choses, j'en viens vers vous pour tenter de résoudre mon problème.

Mon entreprise m'a fournit delphi 2009 pour déployer un projet qui utilise une BDD MySQL. Le problème est le suivant : Je n'arrive tout simplement pas à me connecter... J'ai utilisé une méthode avec le fameux mysql.pas et la DLL associée mais ça ne fonctionne pas. Aucune erreur, juste que la connexion échoue. Je me suis dis dans un premier temps que mon serveur MySQL devait être mauvais donc j'ai testé en PHP et aucun soucis de connexion (que l'host soit locahost ou une IP distante. Le soucis viendrait donc de ce RAD.

voilà le code que j'ai mis dans une form toute neuve pour tester :

procedure TForm1.Button1Click(Sender: TObject);
Var user,host,pwd:string;
portip:integer;
begin
user:='root';
pwd:='';
host:='192.168.0.12';
portip:=3306;
mysql := mysql_init(nil);
mysql_options(mysql,MYSQL_OPT_COMPRESS,0);
if mysql_real_connect(mysql, pChar(host), pChar(user), pChar(pwd), nil, portip, nil, 0)=nil  then
Label1.Caption:='La connexion a echouée'
else
Label1.Caption:='Connexion OK';
end;
end.

et toujours "La connexion a échouée".

Quelqu'un a t il déjà fait une connexion à une BDD MySQL sous delphi 2009 et si oui quelle est la procédure?

Merci :)

8 réponses

Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

j'ai déja utiliser mysql.pas dans des projets et si mes souvenirs sont bons, il faut libmysql_fast_load(nil); avant de faire le mysql_init(nil)

bonne journée
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
26 juin 2009

humm...

ta fonction semble non déclarée...

je vais regarder
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
26 juin 2009

alors j'ai testé libmysql_load(nil) qui est présente dans mysql.pas mais même résultat...

je rage
Messages postés
3
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
27 juin 2009

Salut vmsn,
J'ai exactement le meme probleme depuis quelque mois. J'ai analysé ton bout de code et il est correcte. Je sais par experience que la librairie mysql.pas et la dll fonctionnent très bien avec des versions anterieures de delphi, notemmant la 2006 architecte avec laquel je continue a codé a cause de ce probleme.

Si tu trouve une solution d'ici la, s'il te plait pourrai-tu m'en faire part?

Je cherche moi meme de mon coté et te tient au courant.

A+, El - Key
Messages postés
3
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
27 juin 2009

Salut vmsn,
Apres 5 min de recherche intensive, je suis finalement tombé sur un site très intérressant. En fait, la version de notre mysql.pas été trop ancienne, et donc non compatible avec delphi 2009. Voici un lien permettant de télécharger la librairie mis a jour le 24 Juin 2009:

mysql.pas

Aller a+ et bonne continuation...
Messages postés
4
Date d'inscription
dimanche 17 mai 2009
Statut
Membre
Dernière intervention
31 janvier 2010

salut j'ai une petites proposition a vous ,c'est d'utiliser Winmysqladmin avec pilote ODBC MYSQL:on utilisant la technologie ADO (dbgo)en delphi 2009 et bonne chance
Messages postés
2
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
22 février 2010

De mon coté pour que ca fonctionne le code doit etre comme cela :

procedure TForm1.Button1Click(Sender: TObject);
Var user,host,pwd:PAnsiChar;
portip:integer;
begin
user:=Pansichar(AnsiString('root'));
pwd:=Pansichar(AnsiString(''));
host:='Pansichar(AnsiString('127.0.0.1'));
portip:=3306;
mysql := mysql_init(nil);
mysql_options(mysql,MYSQL_OPT_COMPRESS,0);
if mysql_real_connect(mysql, host, user, pwd, nil, portip, nil, 0)=nil then
Label1.Caption:='La connexion a echouée'
else
Label1.Caption:='Connexion OK';
end;
end.
Messages postés
2
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
22 février 2010

j ai eu des problemes avec le libmysql.dll qui ne voulait pas se charger

donc il faut mettre dans ce cas

libmysql_fast_load(nil);

avant le mysql := mysql_init(nil);

il ne faut pas oublier de declarer la variable mysql dans la procdedure

var
mySQL : PMYSQL;

et de mettre "mysql" dans les uses

voila en espérant que cela aidera tout le monde