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 :

Composants d'accès à MySQL


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué Avatar de neodelphi2007
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 179
    Points
    179
    Par défaut Composants d'accès à MySQL


    Quels sont les meilleurs composants d'accès à MySQL avec Delphi 2009 ?

    merci.

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    salut;

    je n'ai pas encore eu la chance de travailler avec Delphi 2009 mais je me pose la question est-ce ADO a disparu de D2009 ? sinon pour quoi ça serait différent car dans les autres version Delphi 7 et 6 (à titre d'exemple) ADO l'emporte de loin. en plus il est bien documenté.


    Bonne chance.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    Membre habitué Avatar de neodelphi2007
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    ADO existe toujours sous Delphi 2009. Pour l'instant j'utilise MySQL avec DBExpress. Je sais qu'il existe les composants de Devart mais je me demande s'il y en a d'autre et des open sources par exemple.

  4. #4
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    tout est depend du version MySqlLib.dll que t'as

  5. #5
    Membre habitué Avatar de neodelphi2007
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 179
    Points
    179
    Par défaut
    Je dispose de la version MySQL 5.0.51b

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Effectivement MyDAC de Devart CoreLab qui permet de ne pas devoir installer le moindre drivers sur le poste client !
    Ils sont payants, ils sont pratiqué dans ma société depuis 2004 !
    c'est plus performant qu'avec ADO et le driver ODBC ... et les messages d'erreur d'ADO avec les curseurs c'est quand même bien pourri !

    MySQL 5.0.51b, fonctionne très bien, même avec un vieille version 3.55 de la lib, pour MySQL 5.1, faut la version 4.00
    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

  7. #7
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Pas seulement cela il faut savoir si la lib est supportée par la version DBExpress si ton MySQL 5.0.51b est la version de la lib 3.55 fonctionne correctement sous Delphi7 ne sera pas le meme cas avec D2006 par exemple

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Je parlais de la version 3.55 de MyDac

    Je ne connais pas la version pour DBExpress, mais tu as tout à fait raison qu'en fonction de la version de Delphi, il y aura des différences ! Faut-il que celui-ci soit à jour, ce qui est drôle c'est que l'on trouvait les drivers DBExpress les plus à jour chez Devart CoreLab ... les versions de Delphi n'étant pas assez régulières pour suivre l'évolution d'un projet communautaire ... comme quoi le monde est petit ...

    Sinon mon Driver ODBC de MySQL, qui est pour ma part en version 3.51 ... facile de confondre les versions !
    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

  9. #9
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Citation Envoyé par ShaiLeTroll
    Sinon mon Driver ODBC de MySQL, qui est pour ma part en version 3.51 ... facile de confondre les versions !
    je ne te comprends pas c'est quoi un Driver ODBC de MySQL

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    ADO utilise un Driver ODBC, donc si tu veux faire du MySQL via ADO, tu dois installer le Driver ODBC de MySQL, qui n'est pas fourni par défaut dans Windows ou dans Office ... c'est comme le Driver DBExpress, c'est le provider de DB, c'est ce qui permet de pouvoir changer de Base de Données facilement en changeant juste le Driver sans changeant de couche d'abstration ...
    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

  11. #11
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Merci pour ces explication j'ai trouvé dans mes anciens source VB des exemples

    Si tu veux utiliser le Mysql directement, si ma memoire est bonne je pense que j'ai trouvé ce zip sur ce forum
    voir le fichier zip

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par neodelphi2007 Voir le message
    Je sais qu'il existe les composants de Devart mais je me demande s'il y en a d'autre et des open sources par exemple.
    Généralement, tu peux avoir les sources des composants VCL et ça te coutera beaucoup moins chère que d'utiliser MySQL !

    Sinon, tu peux utiliser Zeos https://sourceforge.net/projects/zeoslib/ avec Potgresql ou Firebird

  13. #13
    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
    j'ai réalisé également une unité OpenSource sous GPL d'accès natif à MySQL (sans la DLL client) -> MySQLClient
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  14. #14
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    J'avais regardé ton Source, Paul, c'est vraiement dingue, tu as du passer un temps fou à lire les spécifications du protocol de MySQL, en plus c'est codé assez sauvagement ... bon, couplé avec le TMemroyDataSet décrit en tutoriel sur Developpez.com, ça doit le faire ... tu l'as testé avec 5.0, 5.1 et 5.4 ?
    Et Delphi 2009 avec le changement de la String ?

    Sinon, si quelqu'un connait, une lib MySQL (via TDataSet), en Open Source, super bien écrite, cela m'intéresse aussi, car on en trouve plein, comme celle de Paul, qui ne sont pas DBWare (y compris celui de MySQLQueryBrowser, je ne pige rien au code Delphi de cet outil), beaucoup qui ne sont plus maintenus, ou alors très très mal écrites ... du coup autant payé un peu, et avoir une maintenance, j'aime bien la lib de Devart (efficace malgré que l'on soit au bureau vachement en retard sur les versions, j'espère qu'ils ont amélioré l'ouverture d'un SELECT, il y a toujours 5-6 ms qui parte dans le vide alors que MySQL a fini son taf, ce qui reste plus performant qu'ADO, qui perdait 7-8 ms à je ne sais quoi, et qui n'était pas économe en mémoire)
    Leur objet de BackUp étant vraiement pourri, heureusement, ils sont modifié cet objet pour ne plus foutre l'intégratilité d'un DUMP MySQL en mémoire, faut vraiement, que je le teste !
    Du coup, on pouvait pas restaurer une base de plus de 750Mo car recopié moins 3 fois en RAM (et boum à 2Go), j'ai du coup fait mon propre parser de DMP compatible TMyBack de Devart et MySQLAdministrator ... mais il est vraiment moche
    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

  15. #15
    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
    Citation Envoyé par ShaiLeTroll Voir le message
    J'avais regardé ton Source, Paul, c'est vraiement dingue, tu as du passer un temps fou à lire les spécifications du protocol de MySQL, en plus c'est codé assez sauvagement ... bon, couplé avec le TMemroyDataSet décrit en tutoriel sur Developpez.com, ça doit le faire ... tu l'as testé avec 5.0, 5.1 et 5.4 ?
    Et Delphi 2009 avec le changement de la String ?
    [...]
    alors le protocole est assez simple et bien documenté, donc ça n'a pas été très difficile en fait

    actuellement je ne bosse plus du tout sur les bases de données (mais je suis open pour un nouveau job ) de tête ça fonctionne sur la v5 mais je n'ai plus ça sous la main. Quand au TDataSet, j'ai tenté d'en faire un ici mais j'ai renoncé assez vite...je passais plus de temps à faire fonctionner un DataSet dont le comportement ne me plaisait pas (mise en cache pour la DBGrid) qu'à utiliser mon objet TMySQLClient
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  16. #16
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Oui, le composant DataSet, faut un jour que je suis le Tutoriel pour en créer un, cela m'intrigue énormément, sinon interessant le tient, tu as prévu un système de Page, c'est une très bonne idée, loin le temps pù l'on ouvrait un TTable sur Paradox ou DBase avec 2 millions d'enregistrement sans aucun filtre, avec mySQL, c'est pas possible
    J'ai bidouillé un petit adaptateur (genre TDBNavigator) sur le TMyQuery de CoreLab qui lance les requêtes avec des Limit, du coup la grille n'est pas une vrai grille (la scroll ne s'affiche pas) et je gère les défilements via le clavier ... le client a presque la même chose qu'avant (il est content même si cela ne sert à rien) et moi ça m'a fait plaisir de me creuser la tête ...
    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

  17. #17
    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
    Citation Envoyé par ShaiLeTroll Voir le message
    Oui, le composant DataSet, faut un jour que je suis le Tutoriel pour en créer un, cela m'intrigue énormément, sinon interessant le tient, tu as prévu un système de Page, c'est une très bonne idée, loin le temps pù l'on ouvrait un TTable sur Paradox ou DBase avec 2 millions d'enregistrement sans aucun filtre, avec mySQL, c'est pas possible
    J'ai bidouillé un petit adaptateur (genre TDBNavigator) sur le TMyQuery de CoreLab qui lance les requêtes avec des Limit, du coup la grille n'est pas une vrai grille (la scroll ne s'affiche pas) et je gère les défilements via le clavier ... le client a presque la même chose qu'avant (il est content même si cela ne sert à rien) et moi ça m'a fait plaisir de me creuser la tête ...
    ah mais j'ai fait ça dans mon MySQLDataSet avec LIMIT et je sais plus quelle directive je connais le nombre réel de lignes et je gère la scrollbar
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Leur objet de BackUp étant vraiement pourri, heureusement, ils sont modifié cet objet pour ne plus foutre l'intégratilité d'un DUMP MySQL en mémoire, faut vraiement, que je le teste !
    Leur objet de backup n'est pas vraiment pourri : c'est surtout MySQL qui est incapable de faire un backup à chaud consistant.

  19. #19
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu devrais lire "Linux Magazine France" N°107 sur les différentes méthodes de Sauvegarde de MySQL avant de te prononcer VLDG !
    Je n'ai pas le niveau en Linux pour en comprendre certaines, mais en fait il y a des méthodes très efficaces ...

    Sinon, le composant BackUp (TMyDump / TMyBackUp), attention avant celui de la version 5.70, ne permettait pas de rediriger les données vers un Stream, cela était stocké dans une TStringList, donc je confirme, que c'est très mal pensé ... le BackUp était encore correct, cela occupait le volume du SQL, c'est le Restore qui était foireux avec un chargement complet du fichier en mémoire, puis encore une copie du fichier pour son parsage, et encore une copie pour sa soumission à MySQL ... je l'ai refait, et je restore des bases de 2Go sans soucis avec 10Ko de mémoire à peine !
    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

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tu devrais lire "Linux Magazine France" N°107 sur les différentes méthodes de Sauvegarde de MySQL avant de te prononcer VLDG !
    Je n'ai pas le niveau en Linux pour en comprendre certaines, mais en fait il y a des méthodes très efficaces ...
    un backup à chaud n'est pas une sauvegarde simple : c'est une sauvegarde pendant que d'autres travaillent sur la base de données (ce qui n'est pas rare sur une appli client serveur)

    Linux ou n'importe quel OS ne permettront pas de faire ce que seul le moteur de base de données peut garantir

    cf comparatif (http://fadace.developpez.com/sgbdcmp/)

    Après, tu peux utiliser inno hotbackup ou des outils de chez percona mais ça devient beaucoup moins simple (et la simplicité, c'est un gain d'argent)

Discussions similaires

  1. droits d'accès MYSQL ?
    Par cypris dans le forum Débuter
    Réponses: 10
    Dernier message: 11/04/2006, 12h59
  2. [Plugin][quantumDB] accès mysql avec quantumDB via jdbc
    Par juanqui dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/03/2006, 11h06
  3. Lenteur d'accès à MySQL via le réseau
    Par fredouille31 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/02/2006, 08h39
  4. composants à utiliser pour mysql
    Par cedni dans le forum C++Builder
    Réponses: 27
    Dernier message: 02/10/2005, 14h47
  5. Kerio / Composants Indy / Accès refusé
    Par ixpe dans le forum Composants VCL
    Réponses: 3
    Dernier message: 10/09/2004, 13h38

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