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 sur une requête SQL


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 sur une requête SQL
    Bonjour à tous.

    Je ne suis pas sur qu'il y ai déjà un sujet la dessus alors mes excuse si je place mal mon sujet.

    Voila je vous explique. J'ai une requête mysql qui ne fonctionne pas alors que je suis bien connecté à ma base et que la requête fonction sur wamp.

    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
     
    procedure TForm2.FormShow(Sender: TObject);
    var
        mysql: PMysql;
        Resultat : PMYSQL_RES;
        row : PMYSQL_ROW;
    begin
        //On cherche à mémorisé le nombre max de verbes dans la base pour le random
         mysql_query(mysql,pChar('Select count(*) From verbes'));
         Resultat := mysql_store_result(mysql);
         row := mysql_fetch_row(Resultat);
         [...]
    End;
    Quand je lance le test une erreur se produit à la ligne 9 et ce message d'erreur apparaît :
    Le projet Project2.exe a provoqué une classe d’exception EAccessViolation avec le message 'Violation d'accès à l'adresse 100060BA dans le module 'libmysql.dll' Lecture de l'adresse 0000358'. Processus stoppé. Utilisez Pas-à-Pas ou Exécuter pour continuer.
    Ma libmysql.dll est pourtant bien placé dans mon dossier et je l'utilise aussi dans d'autre application ou cela fonctionne parfaitement.

    Bon ba voila je vous appel à l'aide car je vois vraiment pas ce qui cloche.


    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 : 55
    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 448
    Points
    28 448
    Par défaut
    normal, la variable mysql n'est pas initialisée

  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
    Comment ça elle n'est pas initialiser ???
    Tu pourrai développer s'il te plais ?

  4. #4
    Membre actif
    Homme Profil pro
    Programmeur Delphi
    Inscrit en
    Octobre 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Programmeur Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 183
    Points : 227
    Points
    227
    Par défaut
    Si c'est un composant graphique, tu l'ajoutes à ton Form.
    Sinon, il faut l'instancier, le créer, si tu préfères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql := PMysql.create;
    c'est dans le style.
    Il y a peut-être des paramètres à passer au create

  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
    Ok ok merci beaucoup pour votre réponse. Ça ne me dis rien car j'ai déjà fait une publication dans utiliser pMysql.create et ça fonctionner très bien.

    Enfin je vais essayer et on verra. Merci encore

  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
    Désolé mais j'ai essayer d'initialiser mon mysql avec ta fonction et je n'arrive toujours pas à faire fonctionner.

    Tu pourrai me montrer la fonction dans un exemple s'il te plais ?

  7. #7
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par jaduta Voir le message
    Il y a peut-être des paramètres à passer au create
    ou si t'as déjà une connection utilise là au lieu de mysql

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 577
    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 577
    Points : 25 225
    Points
    25 225
    Par défaut
    Ce n'est pas un objet mais un type de la library libMySQL, inspire toi de ce code, et de la documentation des API MySQL
    j'ai utilisé le fichier mysql.pas de Matthias Fichtner, je suppose que tu as un équivalent

    tient, le code qui te manque problablement avant l'appel d'une query

    etape 1, la connexion !
    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
         try
            FConnexion := mysql_init(nil);
         except
            raise Exception.Create(0, 'Librarie MySQL non Installée !');
         end;
     
         if not Assigned(FConnexion) then
         begin
            raise Exception.CreateFmt('Connexion non Initialisée : %d - %s ', [mysql_errno(FConnexion), mysql_error(FConnexion)]);
         end;
     
         if mysql_options(FConnexion, MYSQL_OPT_CONNECT_TIMEOUT, PChar(FTimeOut)) <> 0 then
         begin
            raise Exception.CreateFmt('TimeOut non Initialisé  : %d - %s ', [mysql_errno(FConnexion), mysql_error(FConnexion)]);
         end;
     
         if not Assigned(mysql_real_connect(FConnexion, PChar(FServerName), PChar(FLogin), PChar(FPW), PChar(FDataBaseName), 0, nil, 0)) then
         begin
            raise Exception.CreateFmt('Echec de la Connexion : %d - %s ', [mysql_errno(FConnexion), mysql_error(FConnexion)]);
         end;
    ensuite, voir le code ci plus haut, pour appeler mysql_real_query, mysql_store_result, mysql_field_count, mysql_fetch_row, mysql_field_seek, mysql_fetch_field ...

  9. #9
    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 infiniment pour vos réponse et votre attention. Les code que tu ma donné Troll m'on permit de comprendre ce qui allé pas et maintenant c'est régler.

    Merci encore à vous tous.

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

Discussions similaires

  1. [MySQL] Problème sur une requête SQL
    Par julienmop dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 14/06/2015, 21h47
  2. Probléme sur une requête SQL
    Par ggoncalves dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/10/2012, 15h45
  3. Problème sur une requête SQL
    Par juju05 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/06/2010, 18h20
  4. Problème sur une requête SQL (PL/SQL)
    Par goofyrocks dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/01/2009, 17h33
  5. Problème de SUM sur une requête SQL
    Par Lapicure dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/06/2007, 11h51

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