Tutoriel pour apprendre à gérer une base de données MySQL
Avec les composants natifs de Lazarus, par Alcatîz

Le , par Alcatîz, Responsable Pascal, Delphi et Assembleur
Gestion d'une base de données MySQL avec les composants natifs de Lazarus
Un tutoriel pour débuter en douceur

Dans ce tutoriel, vous apprendrez à gérer une base de données MySQL en utilisant les composants natifs de Lazarus (SQLdb).

Trois exemples d'applications, de complexité croissante, vous sont proposés. Ils vont de l'utilisation exclusive de contrôles spécialisés en bases de données à celle de contrôles classiques. Quelques petits exercices (facultatifs) vous mettront au défi.


Gestion d'une base de données MySQL avec les composants natifs de Lazarus

Cet article est sans prétention ; son but est juste de vous guider en douceur dans la réalisation de vos premières applications utilisant une base de données MySQL, sous Lazarus.
Comme illustration, nous simulons la gestion d'une petite société de location de voitures.

Et vous ?
Que pensez-vous de ce tutoriel ?
Quels composants utilisez-vous pour vos applications bases de données ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de tourlourou tourlourou - Modérateur https://www.developpez.com
le 29/08/2017 à 21:38
Bonsoir,

Je me suis pour l'instant arrêté à la fin du chapitre IV : merci pour ce tutoriel très clair et progressif.

Pour la seconde question, je précise que je n'ai pas de gros besoins en matière de BDD, qu'ils sont monopostes, et que je n'apprécie guère les composants d'accès aux données... Être obligé d'en utiliser une tripatouillée et de les lier alors qu'il n'y a pas vraiment moyen de faire autrement (le DBGrid au DataSource, ce dernier au Query, etc.) m'agace un peu ! Mais bon, parce que mes besoins sont limités et que je suis un peu râleur...

Bref,
Avatar de SERGE92 SERGE92 - Candidat au Club https://www.developpez.com
le 30/08/2017 à 20:40
Bonsoir Mr Alcatiz je suis debutant en programmation et j'ai lu votre tutoriel sur lazarus mais j'ai toujours un probleme paraport a l'affichage des données de ma base de données firebird dans lazarus s'il plait vous aidez moi . la base de donnée contient contient des information mais c'est seulement les entités qui s'affiche
Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 30/08/2017 à 22:25
Bonsoir,

Difficile d'apporter de l'aide sans quelques informations sur la table à afficher, les composants utilisés, etc.
Et un peu de code.
Avatar de thewolf thewolf - Membre régulier https://www.developpez.com
le 04/09/2017 à 18:45
Bonjour.

Ce tutoriel me paraissant très intéressant, je me suis lancé (installation de wamp, ...) mais je bloque à la création des tables de test (II-C) : tout semble bien se passer mais

Dans phpMyAdmin, allez dans le sous-menu Concepteur du menu Plus de notre base de données location, pour vérifier que les relations sont correctes entre les trois tables

les 3 tables sont bien là mais je n'ai pas les flèches verte et bleue matérialisant les relations (pourtant pas d'erreur lors de l'exécution du sql correspondant).

Je découvre dans le menu de gauche la possibilité de créer manuellement une relation mais au moment de la validation, j'ai le message suivant :

Erreur : fonctionnalités relationnelles désactivées

Je suppose qu'il doit y avoir un problème de configuration ... (en cherchant sur le net, que des messages assez anciens parlant de MyIsam et InnoDb, du chinois pour moi !)

Merci si vous avez une explication.

Christian
Avatar de Gouyon Gouyon - Membre éclairé https://www.developpez.com
le 04/09/2017 à 21:09
Ça complète bien l'article que j'avais écrit http://remi-gouyon.developpez.com/tutoriels/databases/creation-premiere-appli-bdd/ et inversement
Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 04/09/2017 à 21:29
Bonjour,

Citation Envoyé par thewolf Voir le message
je me suis lancé (installation de wamp, ...) mais je bloque à la création des tables de test (II-C) : tout semble bien se passer mais
Dans phpMyAdmin, allez dans le sous-menu Concepteur du menu Plus de notre base de données location, pour vérifier que les relations sont correctes entre les trois tables

les 3 tables sont bien là mais je n'ai pas les flèches verte et bleue matérialisant les relations (pourtant pas d'erreur lors de l'exécution du sql correspondant).

Je découvre dans le menu de gauche la possibilité de créer manuellement une relation mais au moment de la validation, j'ai le message suivant :

Erreur : fonctionnalités relationnelles désactivées

Je suppose qu'il doit y avoir un problème de configuration ... (en cherchant sur le net, que des messages assez anciens parlant de MyIsam et InnoDb, du chinois pour moi !)
En affichant la liste des tables de la DB location, l'une des colonnes, nommée Type, contient le type de moteur de stockage. Si ce n'est pas InnoDB, c'est peut-être que phpMyAdmin n'est pas complètement configuré.

La manipulation suivante permet-elle de sélectionner InnoDB comme moteur par défaut ?

  • Dans le bandeau supérieur, cliquer sur Serveur: localhost ;
  • Sélectionner l'onglet Variables ;
  • Trouver la variable default storage engine ;
  • Cliquer sur Modifier et, dans le champ d'édition, taper InnoDB ;
  • Idem avec la variable storage engine.

Si l'opération échoue, il est peut-être nécessaire de réaliser les étapes de configuration de phpMyAdmin reprise au chapitre II-E de cet autre tutoriel : http://alcatiz.developpez.com/tutori...-mageia/#LII-E : l'importation des tables internes et la modification du fichier config.inc.php.
Avatar de tintinux tintinux - Membre éprouvé https://www.developpez.com
le 05/09/2017 à 9:52
Bonjour

phpMyAdmin est une solution pour administrer en mode web les bases MySQL, elle a l'avantage d'être identique sous tous les systèmes d'exploitation, mais elle nécessite d'installer un serveur web, pas toujours utile, et parfois avec des difficultés sans rapport avec Lazarus ou MySql.

Pour une utilisation locale, sous Windows ou Linux avec Wine, je crois qu'il est beaucoup plus agréable d'utiliser l'excellent HeidiSql

Il est d'ailleurs installé, très rapidement, en même temps que MariaDb pour Windows.
Avatar de thewolf thewolf - Membre régulier https://www.developpez.com
le 05/09/2017 à 10:32
Bonjour. Merci pour cette réponse rapide.

En affichant la liste des tables de la DB location, l'une des colonnes, nommée Type, contient le type de moteur de stockage. Si ce n'est pas InnoDB, c'est peut-être que phpMyAdmin n'est pas complètement configuré.
Effectivement, le type est "MyISAM".

Dans le bandeau supérieur, cliquer sur Serveur: localhost ;
Pour moi, le nom est "Serveur: Local Databases"

Trouver la variable default storage engine ;
Cliquer sur Modifier et, dans le champ d'édition, taper InnoDB ;
Idem avec la variable storage engine.
Fait pour default storage engine mais je n'ai pas de variable storage engine ...

Cela ne résout pas le problème, le type reste "MyISAM".
Je vais essayer la configuration proposée par ailleurs.
Avatar de thewolf thewolf - Membre régulier https://www.developpez.com
le 05/09/2017 à 11:14
J'ai donc importé les tables internes et modifié phpmyadmin.conf.
Pour la suite, j'ai trouvé 4 fichiers intitulés config.inc.php, aucun ne comporte une section intitulée " Storage database and tables".

Après redémarrage de wamp, rien n'est changé ...

mais après avoir supprimé la base location, puis tout recommencé à partir de sa création, cela fonctionne enfin !

Je vais pouvoir passer à l'étude du tutoriel en lui-même.

Merci.

Christian
Avatar de thewolf thewolf - Membre régulier https://www.developpez.com
le 05/09/2017 à 11:25
Citation Envoyé par tintinux Voir le message
Bonjour

phpMyAdmin est une solution pour administrer en mode web les bases MySQL, elle a l'avantage d'être identique sous tous les systèmes d'exploitation, mais elle nécessite d'installer un serveur web, pas toujours utile, et parfois avec des difficultés sans rapport avec Lazarus ou MySql.

Pour une utilisation locale, sous Windows ou Linux avec Wine, je crois qu'il est beaucoup plus agréable d'utiliser l'excellent HeidiSql

Il est d'ailleurs installé, très rapidement, en même temps que MariaDb pour Windows.
Bonjour Tintinux.

J'ai (semble-t-il) enfin résolu mon problème mais tout à fait d'accord pour dire que c'était bien compliqué et peu convivial.
Dès que j'ai un peu de temps, je regarde HeidiSql.

Mon but actuel est de réaliser le tutoriel d'Alcatîz pour m'améliorer dans la réalisation d'applications de bases de données (en local sous Windows). Avant, j'utilisais Delphi/BDE (version 2.0 !) et il y a quelques années, je suis passé à Lazarus/Sqlite ...

Bien que travaillant plutôt en local, j'avais réalisé il y a très longtemps (!) un site utilisant le couple php/mysql. Pour ce faire, je me servais d'Easyphp et je n'ai pas le souvenir de tels soucis de configuration.
Responsables bénévoles de la rubrique Lazarus : Alcatîz - Gilles Vasseur -