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 :

[D7] [MySQL] comment créer 1 BDD à partir d'1 appli delphi7


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 100
    Points : 53
    Points
    53
    Par défaut [D7] [MySQL] comment créer 1 BDD à partir d'1 appli delphi7
    Bonjour à tous,

    je souhaite créer une base de données dans MySQL à partir d'une appli Delphi 7. Pour cela j'utilise l'API "MySQL.pas" et la fonction suivante :

    mysql_create_db(mysql, pChar('oyeoye'));
    Or une grosse execption EAccessViolation à l'adresse 0000000000 intervient. Pourtant je suis bien connecter à la base de données car j'arrive à écrire dans des tables déjà créées et même à créer d'autres tables d'une base de données déjà existante.

    A votre avis, pourquoi un tel message s'affiche à l'écran et comment pourrais je le résoudre?

    Merci pour vos réponses

    Anthony

  2. #2
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Tu as regardé la call stack au moment de la violation d'accès?

    Tu devrais trouver des informations sur la source du problème.

    Tient, moi aussi je vais me mettre à utiliser ce tutoriel. La mise en oeuvre est comment?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 100
    Points : 53
    Points
    53
    Par défaut
    C'est pas bien compliqué!

    Juste une petite question, ou dois je regarder pour voir la call stack?


    Concernant le tutoriel, il y a juste pour la connection que je n'arrivait pas à me connecter donc j'ai déclaré ce qui suit dans le onclick d'un bouton:


    procedure TForm1.Button1Click(Sender: TObject);
    Var user,host,pwd:string;
    portip:integer;
    begin
    user:='root';
    pwd:='admin';
    host:='192.168.4.147';
    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;
    Bonne chance

  4. #4
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Pour la Call Stack tu vas dans "Voir/Fenêtre de débug/Pille d'appel" si tu as la version FR.

    Merci pour l'info

  5. #5
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 100
    Points : 53
    Points
    53
    Par défaut
    ben en fait ca plante avant qu'il n'y ai quelque chose de marqué dedans à part que j'ai appuyé sur un bouton.

    Merci qd même

  6. #6
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 100
    Points : 53
    Points
    53
    Par défaut
    J'ai regardé la doc technique API MySQL et il dise qu'il ne faut pas utiliser la fonction "mysql_create_db()" mais plutôt la commande SQL "CREATE DATABASE" à partir d'une des deux fonctions suivantes :
    "mysql_query()" ou "mysql_real_query()"

    Voili voilou

    tony

  7. #7
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Pose un breakpoint, un point d'arrêt avant l'endroit ou tu soupçonne le problème.

    Vérifie les arguments... grâce à la callstack, puis fait un pas à pas, éventuellement approfondis.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 100
    Points : 53
    Points
    53
    Par défaut
    j'ai déjà mis un breakpoint sur la fonction qui semble bugger et j'ai bien essayé de voir ce que cela faisait avec le call stack mais, en fait même avec le pas à pas approfondi on ne sais pas qu'est ce que fait delphi.
    En effet lors de l'exécution de la fonction, le curseur disparait un moment et hop l'erreur intervient!!!

    Donc j'ai laissé de côté cette fonction et je me suis résolu à faire différemment!

    Merci pour tes conseils

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

Discussions similaires

  1. [MySQL-5.6] Comment créer une BDD MySQL pour un projet JEE ?
    Par foufa-info dans le forum Administration
    Réponses: 1
    Dernier message: 14/05/2014, 09h04
  2. [Artichow] Comment créer un graphe à partir d'une table mysql avec deux colonnes
    Par Amel_B dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 24/12/2013, 15h50
  3. Réponses: 2
    Dernier message: 02/12/2007, 09h30
  4. Comment créer des relances à partir d'1 table
    Par Rod_75 dans le forum Access
    Réponses: 9
    Dernier message: 01/03/2006, 15h42
  5. Comment créer un bitmap à partir d'un panel ?
    Par calou34 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 19/08/2003, 15h06

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