FAQ DelphiConsultez toutes les FAQ

Nombre d'auteurs : 123, nombre de questions : 920, dernière mise à jour : 8 novembre 2019  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).

Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.

L'équipe Delphi de Developpez.com.

Commentez


SommaireBases de donnéesMySQL (2)
précédent sommaire suivant
 

Vous pouvez vous connecter à MySQL à partir de Delphi en utilisant les composants de la palette dbExpress.

Assurez-vous avant toute chose que :

  1. le serveur MySQL soit en ligne
  2. le fichier libMySQL.dll se trouve dans le répertoire du projet ou dans un répertoire de votre path
  3. vous disposez des fichiers dbexpmysql.dll et libMySQL.dll correspondant à la version de votre serveur (il est impossible d'accéder à un serveur MySQL 4.xxx avec les dll d'une version précédente, par exemple la 3.23.xxx).

Déposez un composant TSQLConnection sur votre fiche et configurer les paramètres de connexion (clic-droit sur celui-ci). Vous pouvez au choix créer votre propre connexion ou choisir la connexion par défaut (nommée MySQLConnection). Par exemple, pour une connexion à EasyPHP, vous pouvez la nommer EasyPHPConnection.
  • Dans Hostname, entrer le nom d'hôte. Cà peut être localhost si le serveur se trouve sur votre machine ou <ip_serveur>:<chemin> sur une machine distante
  • Dans DataBase : entrez le nom de la base de données

Spécifiez ensuite le nom d'utilisateur et mot de passe et assurer vous que vous pouvez accéder à votre base en testant la connexion (un bouton situé tout en haut de la fenêtre vous permet de le faire).

Pour ouvrir la connexion ajouter dans votre code :
Code delphi : Sélectionner tout
SQLConnection1.Open; // ou SQLConnection1.Active := true
Voilà, il ne vous reste plus qu'à utiliser un TSQLQuery ou un TSQLTable pour manipuler vos données. Cependant, n'oubliez pas que votre dataset sera unidirectionnel c'est à dire que vous ne pourrez utiliser que les méthodes Next (navigation par l'avant exclusivement) et First pour revenir au premier élément.

Mis à jour le 18 janvier 2014 Giovanny Temgoua

Pour se connecter à une base de données MySQL, il faut avant toute chose installer les pilotes disponibles sur le site de MySQL. Une fois ceux-ci installés, deux possibilités se présentent pour la connexion :

1/ Utiliser un DSN

Création d'une source de données :

  • Il faut aller dans le panneau de configuration et lancer ODBC Data Source (Sources de données ODBC) qui suivant les versions de Windows, peut se retrouver dans le sous répertoire Outils d'administration du panneau de configuration.
  • Dans l'onglet User DSN, cliquez sur "Add"
  • Dans la fenêtre qui suit, il faut choisir le driver qui va servir à établir la connexion. Ici il s'agira de MySQL 3.51 ODBC Driver, puis cliquez sur "Terminer".
  • Une fenêtre comprenant plusieurs onglets s'ouvre et vous permet de configurer le DSN. Entre autres, vous devez spécifier le nom du DSN, l'adresse du serveur, l'utilisateur (MySQL) avec lequel on se connecte à la base ainsi que son mot de passe (tel qu'il a été spécifié lors de la création de ce compte dans MySQL). Vous pouvez également spécifier le port de connexion dans l'onglet Connect Options.
  • La dernière opération consiste à choisir le nom de la base dans la liste déroulante, tester la connexion en cliquant sur le bouton Test et si tout fonctionne, cliquer sur OK.

Une fois ceci fait, nous revenons dans Delphi. Il faut maintenant, après avoir déposé un composant TADOConnection sur la fiche, modifier la chaîne de connexion (double-clic sur le composant). Le fournisseur à choisir ici est "Microsoft OLE DB Provider for ODBC Drivers".

Dans la page de connexion, nous utilisons la liste déroulante pour choisir la source de données préalablement créée ainsi que la base à laquelle nous souhaitons accéder en choisissant son nom dans la liste déroulante située en bas de page. L'ouverture de la connexion ainsi que l'affichage des données devient alors une opération classique.

2/ Utiliser une chaîne de connexion

La seconde solution consiste à utiliser une chaîne de connexion "complète". Dans ce cas, nous ne créons pas de DSN, ni n'utilisons un DSN existant. Pour le reste nous procédons de la façon décrite ci-dessus à la différence que nous écrivons la chaîne suivante dans la propriété ConnectionString du composant TADOConnection. Le résultat est légèrement différent et ressemble à ceci :
Code delphi : Sélectionner tout
Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Extended Properties="DRIVER={MySQL ODBC 3.51 Driver}"
où la connexion se fait en tant que root (déconseillé !!! Il faut toujours créer un autre utilisateur qui n'aura pas de privilèges sur la base système MySQL)
À ce moment, il faut préciser que mettre LoginPrompt à True ne fera pas une connexion automatique si la base de données est sécurisée. Ceci parce que les infos de sécurité (le mot de passe en particulier) ne sont pas sauvegardées. Pour le faire, on peut :
  • soit directement éditer la chaîne, Mettre Persist Security Info à True, et Ajouter l'attribut Password avec le mot de passe de connexion
  • soit cocher la case "Allow saving password" dans l'onglet Connection de la configuration du composant TADOConnection.

Avec une connexion sécurisée :
Code delphi : Sélectionner tout
Provider=MSDASQL.1;Password=x;Persist Security Info=True;User ID=root;Extended Properties="DRIVER={MySQL ODBC 3.51 Driver}"
Pour finir, nous pouvons utiliser la propriété DefaultDataBase du TADOConnection pour spécifier la base de données par défaut à laquelle on souhaite se connecter.

Important : Vous ne pouvez pas récupérer des données après la connexion si vous n'avez pas coché les cases Don't optimize column widths et Return matching rows dans les options du DSN.

Si vous utiliser une chaîne directe, cela correspond à l'option 3. Vous aurez donc une chaîne qui ressemble à :
Code delphi : Sélectionner tout
Provider=MSDASQL.1;Password=x;Persist Security Info=False;User ID=root;Extended Properties="DRIVER={MySQL ODBC 3.51 Driver};OPTION=3;"

Mis à jour le 18 janvier 2014 Giovanny Temgoua

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2019 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.