IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Problème de connexion à une base MySQL


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 21
    Points : 15
    Points
    15
    Par défaut Problème de connexion à une base MySQL
    Voila j'essaye de me connecter à ma base MySQL 5.5.8.
    J'utilise Delphi 6 et le langage Pascal.

    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
    //-------------------------------------------------------
    // Connexion à la base de données MySQL
    //-------------------------------------------------------
    procedure TForm1.Button1Click(Sender: TObject);
    var
      portip:integer;
      user,host,pwd:string;
      recupportip:string;
      fichierini: TIniFile;
    begin
      fichierini:=Tinifile.Create('C:\Program Files\...\config.ini');
      user:=fichierini.readstring('PARAM','USER','default');
      pwd:=fichierini.readstring('PARAM','MDP','default');
      host:=fichierini.readstring('PARAM','IP','default');
      recupportip:=fichierini.readstring('PARAM','PORT','default');
      portip:=StrToInt(recupportip);
    
     MySQL := mysql_init(nil);
     if mysql_real_connect(mysql, pChar(host), pChar(user), pChar(pwd), nil, portip, nil, 0)=nil  then
       showmessage('La connexion a echoué')
     else
       showmessage('Connexion OK')
     end;
    L'erreur se situe à la ligne 18 (surligner en rouge ci dessus).

    Je reçois un message d'erreur :
    "Le projet1.exe a provoqué une classe d'exeption EAccessViolation avec le message 'Violation d'accès à l'adresse 00000000. Lecture de l'adresse 00000000'. Processus stoppé. Utilisez Pas-à-pas ou Executer pour continuer."
    Et bien sur le projet n'abouti pas si je continue le programme...

    Si quelqu'un peu me renseigner sur mon erreur s'il vous plais ?
    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    deux hypothèses :

    1) tu utilises un unité MySQL qui déclare l'API MySQL sous forme de variable de fonction et il faut appeler une fonction d'initialisation qui va charger la DLL client et en extraire les fonctions (LoadLibrary, GetProcAddress)...ou alors c'est que la DLL client n'est pas présente et que l'unité n'a pas pu la charger.

    2) l'unité MySQL ne supporte pas le paramètre "nil" sur la fonction mysql_init

    en tout état de cause l'erreur indique un accès à l'adresse 0, soit c'est l'adresse de la fonction, soit c'est le paramètre nil qui est en erreur.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta réponse mais ce code à déjà était utiliser avec la fonction "Nil" donc je pense pas que ce soit cela qui fait erreur.

    Je vais voir pour ce qu'il s'agit de la DLL et je posterai si c'est bien ça.

    Merci encore.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 462
    Points : 24 879
    Points
    24 879
    Par défaut
    MySQL_init() supporte le nil, c'est confirmé par la documentation de MySQL 5.5


    en tout cas, c'était le cas avec la version 3.23.49 de MySQL.pas sur une DB 4.1

    un petit extrait de code si tu utilises libmySQL.dll manuellement sans avoir de MySQL.pas

    Je pense comme Paul TOTH que ton problème est l'adresse de la fonction !
    Il me semble que si la DLL est manquante, il te le signale proprement !
    regarde ton MySQL.pas, il me semble qu'il y avait "libmysql_load" et "libmysql_fast_load"

    En version 3.23.49 (2002), le chargement via "libmysql_load"était implicite car DONT_LOAD_DLL n'était pas défini
    le chargement mappait l'ensemble des fonctions d'un seul coup

    En version 2009 et +, le chargement devait se faire manuellement par libmysql_fast_load
    l'appel des fonctions est encapsulé dans un mécanisme de lazyloading !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Bon ça fait maintenant un moment que je fouille partout sur internet pour essayer de résoudre se problème.

    Je suis donc tomber sur ce tuto pourtant clair, mais même en respectant ce qu'il dit ça ne corrige pas mon erreur...
    Voici le lien http://delphipage.free.fr/delphimysql.html

    Merci pour ta réponse ShaiLeTroll je pense pouvoir mieux comprendre ce qui ne va pas.

    Merci à tous.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Bon enfin je vien de résoudre le problème...

    Dans le fichier mysql.pas que mon prédécésseur à crée il à fait en sorte de chercher la dll dans le fichier parent et non dans le fichier de l'exe.

    Donc en changeant l'emplacement de ma dll la connexion fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probléme de connexion à une base mysql
    Par zied_m dans le forum Accès aux données
    Réponses: 0
    Dernier message: 09/07/2013, 16h31
  2. probléme de connexion à une base mysql
    Par Jaafar_scorpion dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 01/01/2013, 12h24
  3. Problème de connexion à une base MySQL
    Par ctenot dans le forum NetBeans Platform
    Réponses: 8
    Dernier message: 23/11/2011, 03h59
  4. Réponses: 1
    Dernier message: 19/07/2007, 21h09
  5. Problème de connexion à une base de donnée MySQL
    Par casho dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/06/2007, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo