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 :

DBExpress, Delphi 6 et MySQL : Erreur DBX


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut DBExpress, Delphi 6 et MySQL : Erreur DBX
    Bonjour tout le monde

    voila mon pb : j'ai toutes les difficultés du monde à travailler sur une base MySQL distante en utilisant DBExpress...

    Pour parvenir à quelque chose j'ai déjà dû mettre à jour 2 dll : dbexpmysql.dll (j'ai récupéré dbexpmy4.dll sur le site de borland) et libmySQL.dll (qui n'était pas présent parmi les dll de delphi).

    Suite à ces changements :
    - je parviens enfin à me connecter
    - j'arrive à effectuer des requêtes de création de table, insertion de champs et suppression de table via un SQLQuery, un SQLDataSet ou directement sur le SQLConnection.

    Mais effectuer un simple select semble tenir du miracle. les erreurs DBX pleuvent : type de champ incorrect, taille de champ incorrect...

    J'ai également le droit à un joli "traduction incorrecte" lorsque j'essaie de sélectionner une table dans un SQLTable, ou en affectant ctTable à la propriété CommandType des autres composants pour ensuite choisir une table.


    Quelle est donc la parade ? toujours un pb de dll ? aurais-je plutot intérêt à mettre à jour delphi 6 une bonne fois pour toute ?

    (je tiens à préciser que toutes les opérations sur la base se font sans problème en utilisant BDE ou ADO via l'ODBC...)

    merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    598
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 598
    Points : 2 020
    Points
    2 020
    Par défaut
    dbExpress est loin d'être parfait, au point que j'ai décidé de l'abandonner. Mais quand même .... J'arrivais à faire des SELECT.

    Il est certain que la mise à jour Delphi 7.1 mis en ligne très récemment corrige (encore) beaucoup de pb lié à dbExpress.

    Mais avant de passer à Delphi 7 (du moins pour cette seule raison), je te conseille de jeter un oeil au projet Zeos.
    (www.zeoslib.net)

    J'utilise cette librairie depuis un moment déjà. C'est aussi rapide que dbExpress tout en étant plus souple, plus puissant et plus simple à déployer (pas de DLL autre que le client mySQL lui-même).

    A ceux que cela interresse, les couches les plus basse (ressemblant beaucoup à l'API JDBC) sont accessible avec les versions personnelle de Delphi (pas besoin de l'unité DB).
    --
    vanquish

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par vanquish
    Mais avant de passer à Delphi 7 (du moins pour cette seule raison), je te conseille de jeter un oeil au projet Zeos.
    (www.zeoslib.net)
    depuis le temps que j'entends parler de ces composants je vais peut etre aller y jeter un oeil
    ils n'ont donc que des bon cotés ?

    sinon, pour "profiter" de dbexpress, tu serais donc partisant de la mise a jour...

    merci pour tes conseils

  4. #4
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    598
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 598
    Points : 2 020
    Points
    2 020
    Par défaut
    Citation Envoyé par BoBoToTo
    depuis le temps que j'entends parler de ces composants je vais peut etre aller y jeter un oeil
    ils n'ont donc que des bon cotés ?
    Il n'y a pas de doc.
    Ils utilisent à fond les interfaces (un vrai cours) ce qui produit un code plus compacte que l'hériatage, mais rend impossible la navigation dans le code par [Ctrl]+[Clic]

    Citation Envoyé par BoBoToTo
    sinon, pour "profiter" de dbexpress, tu serais donc partisant de la mise a jour...
    La 7 et la 7.1 corrigent de nombreux problèmes autour de dbExpress.
    Et donc peut-être que cela réglera tes problèmes.

    Le pb est si tu dépense le cout d'une mise à jour que pour cela et qu'au final ton pb vienne d'ailleurs. Car à te lire le système est proprement inutilisable. Or des souvenirs que j'en ai (et je travaillais à l'époque sous Delphi 6), je n'avais quand même pas tant de problèmes.
    --
    vanquish

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par vanquish
    Le pb est si tu dépense le cout d'une mise à jour que pour cela et qu'au final ton pb vienne d'ailleurs. Car à te lire le système est proprement inutilisable. Or des souvenirs que j'en ai (et je travaillais à l'époque sous Delphi 6), je n'avais quand même pas tant de problèmes.
    l'entreprise dans laquelle je travaille possède quelques licences pour delphi7. ça ne me coute donc rien de faire un essai

    je vais tout de même continuer à chercher si le pb ne vient pas d'ailleurs...

    Citation Envoyé par vanquish
    Il n'y a pas de doc.
    Ils utilisent à fond les interfaces (un vrai cours) ce qui produit un code plus compacte que l'hériatage, mais rend impossible la navigation dans le code par [Ctrl]+[Clic]
    pas de doc
    j'espere que c'est suffisamment intuitif

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    le test sur delphi 7 a été encore moins concluant (impossible de se connecter)

    visiblement delphi (via les dll) est extremement sensible à la version de mysql, et l'ensemble "dll delphi - dll mysql - version du serveur" doit être parfaitement homogène.

    d'après les newsgroup borland, les dll présents sur delphi 6 seraient orientés mysql 3.x. Pour mysql 4.0.x (le serveur auquel j'accède est en 4.0.13) il faut récupérer le driver dbexpress aproprié sur le site de borland (dbexpmy4.dll, que j'avais déjà récupéré) et mettre à jour la librairie libmySQL.dll en fonction.

    je vais essayer de refaire tout ça proprement... en testant les versions 3.23 et 4.0.18 de mysql...

    remarque : comme je l'ai dit plus haut, les dll que j'ai récupéré m'ont permis de me connecter à une base mysql (4.0.13), créer/supprimer des tables et insérer des éléments dans ces tables avec delphi 6 (le select restant impossible...).
    Avec delphi 7, peu importe les dll, je n'ai pour l'instant pas réussi à me connecter...

  7. #7
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    598
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 598
    Points : 2 020
    Points
    2 020
    Par défaut
    Quand j'ai commùencé, il n'y avait pas d'outils Delphi pour mySQL4 qui venait tout juste de passé en mode release.

    J'ai donc installé un serveur mySQL 4, mais utilisé la dernière DLL cliente
    mySQL 3.
    --
    vanquish

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    hum...

  9. #9
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    598
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 598
    Points : 2 020
    Points
    2 020
    Par défaut
    Citation Envoyé par BoBoToTo
    hum...
    Cela fonctionne très très bien.
    Mon 1er site (50 postes simultanés) est encore installé comme cela.
    On a jamais voulu pendre le risque d'aller bidouiller 50 postes qui fonctionnent très bien.

    Le tout est de ne pas avoir besoin de certaines des spécificité de la 4.
    --
    vanquish

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    J'utilise delphi 6 perso et l'api mysql et je n'ai vraiment aucun problème que ça soit pour la connection ou les requêtes.

    Donc tu peux utiliser l'api mysql sans problème aussi je pense...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    oui j'imagine que borland a fait quelque chose qui soit un minimum fonctionnel

    mais bon, pour l'instant, j'ai beau varier les plaisirs en passant d'une version de mysql à une autre, en utilisant une base locale ou distante, et en jonglant avec les dll, j'arrive parfois à me connecter mais je ne vais jamais plus loin que des creations de tables ou des insertions...

    Tout se passe comme si les info ne pouvaient aller que dans un sens... je ne sais pas si ça peut vous mettre la puce à l'oreille ?

    la je viens de remettre le dll de base de delphi6 pour dbexpress et de lancer un serveur mysql 3.23, en récupérant le libmysql.dll sur ce serveur. la connexion fonctionne, création et insertion... mais une nouvelle erreur apparait quand je fais un select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Violation d'accès à l'adresse blabla dans le module 'DBEXPMYS.DLL'. Lecture de l'adresse blabla
    dbexpmys.dll étant le dll fourni avec delphi6, récupéré sur le cd d'origine en cas de fausse manip avec les dll installés (je les ai tellement remué...).

    en faisant la même manip avec dbexpmy4.dll, tout droit sorti du site de borland (mais en beta ), le select me lève une petite erreur DBX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur DBX : type de champ incorrect
    le sort joue contre moi, ou je passe a coté de quelque chose ?...

    (merci beaucoup pour votre aide )

Discussions similaires

  1. Delphy XE2 BDD: SQL Server // Erreur DBX
    Par Liomenos dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/11/2013, 08h59
  2. DBExpress Delphi 2007 pour MySQL 5.1
    Par BaldeckJ dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/04/2011, 16h44
  3. Delphi 2007 et Mysql [dbexpress]
    Par rvzip64 dans le forum Delphi
    Réponses: 8
    Dernier message: 11/06/2007, 22h16
  4. Delphi 7.1, MySQL et dbEXpress sont dans un bateau...
    Par jl_s dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/01/2006, 00h36
  5. delphi 6 perso +mysql
    Par o_live dans le forum Bases de données
    Réponses: 7
    Dernier message: 06/10/2004, 15h03

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