sonnikk
Messages postés19Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention27 mars 2004
-
14 mars 2004 à 12:29
sonnikk
Messages postés19Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention27 mars 2004
-
16 mars 2004 à 00:29
A l'aide !!!
je développe pour le compte d'un magasin de vetements un site de e-commerce. cependant, je souhaiterais gérer le site depuis un prog developpé en delphi. et la j'ai un gros pb : lors de l'initialisation de mysql, j'obtiens une erreur "exeption raised class EAccessViolation.....read of adress 00000000"
je suis sur a 100% que c'est le mysql_init() qui merde(en mettant juste mysql_init() dans la procedure, ca merde encore.), mais j'arrive pas a trouvé pourquoi.
quelqu'un peut'il m'aider ?
HELP ! je pete un plomb moi !
sonnikk
---------------------
In tartiflette we trust !
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 14 mars 2004 à 17:31
"read of adress 00000000" est synonyme d'une tentative d'utilisation d'un pointeur non initialisé ou d'un objet non instancié.
Mais si tu es sûr à 100% que ça vient du peu de code ci-dessus, alors pourquoi demander de l'aide ? :approve)
May Delphi be with you
sonnikk
Messages postés19Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention27 mars 2004 14 mars 2004 à 20:05
pourquoi demander de l'aide ? ben tt simplement parce que ca marche pas et que je comprends pas ce qu'il faut faire pour que ca marche (je debute en delphi, a la base je concoit des sites web).
tu comprends mon pb ?
en pas a pas le prog plante qd il tente de faire mysql_init(nil);
voila mon source au complet si tu peux m'aider !!!
(un peu modifiée, j'essaye de trouver mon erreur)
var
mySQLConnection : PMYSQL;
procedure connect();
begin
// initialisation
mySQLConnection := mysql_init(nil); if mySQLConnection nil then {nil erreur}
ShowMessage('Initialisation pas ok')
else
ShowMessage('Initialisation ok');
// connexion
if mysql_real_connect(mySQLConnection, PChar(options.Edit2.Text), PChar(options.Edit4.Text), PChar(options.Edit5.Text), PChar(options.Edit3.Text), 0, nil, 0) <> nil then {0 == erreur}
ShowMessage('Connexion ok')
else
ShowMessage('Connexion pas ok');
end;
procedure deconnect();
begin
mysql_close(mySQLConnection);
end;
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 14 mars 2004 à 22:35
Là, je ne te comprends pas : dans un cas comme dans l'autre, quelle que soit l'issue de l'appel à MySql_Init, tu continues à vouloir l'utiliser dans la procédure connect !
Attention aussi : dans la procédure Disconnect, tu passes un pointeur sans vérifier qu'il soit initialisé (conséquence logique de la procédure Connect).
Soit tu déclares un booléen qui sera utilisé par les différentes fonctions ayant besoin de connaitre l'état de la connection au serveur MySql :
Connected := MySqlConnection <> nil;
soit tu testes directement la valeur du pointeur MySqlConnection avant d'effectuer une quelconque action sur la base de données.
NB : tu peux aussi utiliser les assertions :
Assert(MySqlConnection <> Nil, 'La connexion a échoué');
Cette dernière formule déclenchera l'apparition du message d'erreur indiqué et une sortie directe de la procédure Connect.
Je n'ai pas utilisé cette l'API MySql.pas. Néanmoins, j'ai regardé les exemples donnés sur le site de cette API MySql/Delphi et je ne pense absolument pas que ton erreur puisse provenir de l'appel à MySql_Init puisque, par principe, cette fonction renvoie Nil en cas d'échec.
Ou alors, tu aurais oublié de copier libmySQL.dll dans un des chemins de recherche de ta machine.
Bon courage et bons débuts en Delphi.
May Delphi be with you
sonnikk
Messages postés19Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention27 mars 2004 16 mars 2004 à 00:29
Youpi j'ai trouvé !!!
en fait j'ai retéléchargé libmysql.dll et je l'ai remplacer et now tt marche ! apres vérification, cette dll et l'ancienne font pas la mm taille. peut etre un p'tit pb de corruption ou qqch ds le genre. d'ou le pb a l'appel de mysql_init() (j'avais pas tt a fait tord, mdr !)
merci qd mm de ton aide, delphiprog, et merci pour tes encouragements !!! :big)
sonnikk
---------------------
In tartiflette we trust !