Developpez.com

Club des développeurs et IT pro
Plus de 4 millions de visiteurs uniques par mois

Utilisation de Lazarus avec Mysql (Complément)

En complément aux articles généraux relatifs à l'utilisation des bases de données avec Lazarus, ce document expose des détails complémentaires spécifiques à MySql.

Commentez Donner une note à l'article (5)

Article lu   fois.

L'auteur

Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Problème d'accès à la librairie Libmysql.dll sous Windows

Pour l'exécution de votre programme, il faut placer cette dll dans le répertoire du projet.

Pour se connecter depuis l'IDE de Lazarus et piloter les composants tels que TSqlQuery et ajouter des rubriques, il faut placer également une copie de la dll dans le répertoire de Lazarus et, dans certains cas, cette dll doit aussi être placée dans C:\Windows\System et/ou dans C:\Windows\System32.

Attention, la version de la dll est prise en compte par Lazarus. Vous pouvez télécharger une version compatible de libmySQL.dll avec Lazarus 0.9.29 et ici (lien miroir).

Problème d'affichage des accents avec Mysql

Par défaut, les composants d'accès natif de Lazarus ne proposent pas la gestion de l'UTF-8 et les données ne seront pas affichées correctement dans les champs (TDBEdit, TDBGrid, etc). Ce problème peut également survenir avec d'autres composants d'accès comme ceux de ZEOS. Appliquez dans ce cas la même méthode que pour les composants natifs.

Pour remédier à cela, placez un TSqlQuery (Name = SqlQuerySet) sur votre Form ou votre DataModule et utilisez-le de la manière suivante.

Dans le code de l'événement AFTERCONNECT du TSqlConnection, placez le code suivant :

 
Sélectionnez

SQLQuerySet.SQL.Text : = 'SET CHARACTER SET `utf8`';
SQLQuerySet.ExecSql;

Lors de la connection, la séquence sera envoyée à la base de données et vos données seront bien affichées par la suite.

Paramétrage de Mysql pour un accès distant

Dans le fichier de configuration de MySql (my.cnf) ou (my.ini), assurez-vous que la ligne BIND-ADRESS soit mise en commentaire. Si elle ne l'est pas, seules les connections depuis l'IP spécifiée seront autorisées.

 
Sélectionnez

bind-adress

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1 

Le port 3306 est utilisé par défaut par Mysql. Vérifiez un blocage par le firewall en cas de soucis.

L'utilisateur devant accéder à la base depuis un poste distant doit avoir les privilèges pour effectuer cette opération.

Quelques commandes SQL bien pratiques

Liste des bases du serveur SHOW DATABASES
Liste des tables et index SHOW TABLES
Structure d'une table SHOW COLUMNS FROM 'MATABLE'
Dernier auto-inc ajouté SELECT DISTINCT LAST_INSERT_ID() FROM 'MATABLE'
Initialiser la valeur de l'auto increment (pour la réplication) ALTER TABLE 'MATABLE' AUTO_INCREMENT=200000000
Liste des index d'une table SHOW INDEX FROM 'MATABLE'
Affiche les droits de l'utilisateur en cours SHOW GRANTS;
Affiche les droits d'un utilisateur sur un poste donné SHOW GRANTS FOR 'utilisateur'@'host';
Affiche les droits d'un utilisateur sur tous les postes SHOW GRANTS FOR 'utilisateur'@'%';

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2008-2011 chris37. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.