Quels sont les meilleurs composants d'accès à MySQL avec Delphi 2009 ?
merci.
Quels sont les meilleurs composants d'accès à MySQL avec Delphi 2009 ?
merci.
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.
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.
tout est depend du version MySqlLib.dll que t'as
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
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
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 !
je ne te comprends pas c'est quoi un Driver ODBC de MySQLEnvoyé par ShaiLeTroll
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 ...
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![]()
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
j'ai réalisé également une unité OpenSource sous GPL d'accès natif à MySQL (sans la DLL client) -> MySQLClient
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
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
![]()
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 ...
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 !
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager