IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 connexion, 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 connexions 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 autoinc ajouté

SELECT DISTINCT LAST_INSERT_ID() FROM 'MATABLE'

Initialiser la valeur de l'auto-incrément (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 ni 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.