SQLdb Tutorial1/fr
English · Español · Français · 中文(中国) · 日本語
Portail de la base de données
Références: · Information générale · Bibliothèques · Types de champ · Contrôles · FAQ · Comment faire en SQL ? · Travailler avec TSQLQuery · Applications de base de données en mémoire · Tutoriels/articles pratiques : · Vue d'ensemble · 0 - Configuration de la base de données · 1 - Commençons · 2 - Edition · 3 - Requêtes · 4 - Modules de données · Référence de programmation SQLdb · Bases de données · Advantage - MySQL - MSSQL - Postgres - Interbase - Firebird - Oracle - ODBC - Paradox - SQLite - dBASE - MS Access - Zeos
Déterminer la partie des informations à afficher
Bien que la connexion ait été réalisée, les données ne se sont pas affichée. La raison en est simple. Vous n'avez pas précisé au serveur ce qu'il devait vous renvoyer : La base de données employee.fdb contient plusieurs tables et nous n'avons pas informé Firebird quelle table nous voulions regarder. Si vous ne connaissez pas la structure de la base, vous pouvez utiliser des outils comme FlameRobin pour afficher les contenus. Lazarus fournit également un outil - le DataDesktop. Vous le trouverez dans le sous-répertoire /tools/lazdatadesktop/ de Lazarus. Sauvegardez votre projet puis ouvrez le projet lazdatadesktop.lpi et compilez-le.
The DataDesktop in action
Retournons à notre exemple.
Nous voulons afficher toutes les données de la table 'CUSTOMER'. Les instructions SQL pour ce faire sont :
select * from CUSTOMERNous devons affecter cette commande à la propriété 'SQL' de SQLQuery1. Dans le code source de notre projet, ça devrait avoir cet air-là :
SQLQuery1.SQL.Text := 'select * from CUSTOMER';Les instructions SQL doivent être entourées d'apostrophes (se sont des chaînes de caractères au format Pascal). Vous pouvez également lui assigner la valeur d'un autre composant (par ex. Edit1.Text). Ce n'est pas toujours une bonne idée; voir Secure programming (une documentation plus avancée) pour des informations sur l'injection de code SQL qui constitue un important risque de faille de sécurité.
Ajoutons sur le formulaire un TButton (un bouton) depuis l'onglet 'Standard'. Quand l'utilisateur clique sur le bouton, l'extraction de données devrait commencer. Il va nous falloir écrire un peu de code pour faire ça. Double-cliquer sur Button1 (le bouton qu'on vient de placer sur le formulaire). Lazarus crée alors la procédure nécessaire. Nous trouverons dans notre code les lignes suivantes :
procedure TForm1.Button1Click(Sender: TObject);
begin
end;Entre begin et end , vous devez taper les instructions nécessaire à l'affichage des données... ce qui a évidemment quelque chose à voir avec SQLQuery1.
La propriété 'SQL' de SQLQUery1 peut seulement être modifiée quand SQL est inactive. C'est pourquoi nous fermons d'abord le composant :
SQLQuery1.Close;Puis nous assignons notre instruction SQL à la propriété 'SQL', écrasant du même coup un éventuel contenu préalable :
SQLQuery1.SQL.Text := 'select * from CUSTOMER';Il nous faut maintenant établir la connexion à la base, activer la transaction et ouvrir la requête :
DBConnection.Connected := True;
SQLTransaction1.Active := True;
SQLQuery1.Open;Vous pouvez omettre les deux premières instruction, car elles seront automatiquement invoquées par la troisième. Si vous compiler le projet à ce point, vous pourrez déjà voir les données de la table 'CUSTOMER'.
Toutefois, une application qui se veut sérieuse doit s'assurer que les connexions à la base de données sont proprement fermée quand elle ne sont plus utiles. Sinon des effets secondaires imprévisibles peuvent survenir. Donc, nous utilisons l'événement 'OnClose' du formulaire (créez-le en double-cliquant dans l'inspecteur d'objets :
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
end;Pour fermer la connexion, nous utiliserons l'ordre inverse de l'ouverture :
SQLQuery1.Close;
SQLTransaction1.Active := False;
DBConnection.Connected := False;Résumé
Jusqu'à maintenant, nous avons appris a connecté la base de données en utilisant le paquet SQLdb pour afficher le contenu d'une table sur l'écran. Si vous voulez ajouter plus de fonctionnalités, comme l'édition des données, vous pouvez continuer avec Tutoriel SQLdb 2
Si vous avez suivi ces différentes étapes, votre code devrait ressemble à ceci :
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, IBConnection, sqldb, db, FileUtil, Forms, Controls,
Graphics, Dialogs, DBGrids, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Datasource1: TDatasource;
DBGrid1: TDBGrid;
DBConnection: TIBConnection;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
SQLQuery1.Close;
SQLQuery1.SQL.Text:= 'select * from CUSTOMER';
DBConnection.Connected:= True;
SQLTransaction1.Active:= True;
SQLQuery1.Open;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
SQLQuery1.Close;
SQLTransaction1.Active:= False;
DBConnection.Connected:= False;
end;
end.Voir aussi
- SQLdb Tutorial0 : Instructions pour configurer les tables et les données d'exemple pour la série de tutoriels.
- SQLdb Tutorial1 : 1re partie de la série de tutoriels sur les bases de données, montrant comment configurer une grille pour afficher les données.
- SQLdb Tutorial2 : 2e partie de la série de tutoriels, montrant l'édition, l'insertion, etc.
- SQLdb Tutorial3 : 3e partie de la série de tutoriels, montrant comment développer pour des bases de données multiples et utiliser une fiche de connexion.
- SQLdb Tutorial4 : 4e partie de la série de tutoriels, montrant comment utiliser les modules de données.
- Vue d'ensemble des bases de données pour Lazarus : Information sur les bases de données supportées par Lazarus. Redirige vers des notes spécifiques à certaines bases de données.
- Paquet SQLdb : Information sur le paquetage SQLdb.
- Référence de programmation SQLdb : Une vue d'ensemble de l'interaction entre les composants de bases de données SQLdb.
- SqlDBHowto : Information sur l'utilisation du paquet SQLdb.
- Travailler avec TSQLQuery : Informations sur TSQLQuery.
- utilisation des paramètres
From the Free Pascal wiki, page "SQLdb Tutorial1/fr", as the Internet Archive kept it on 2025-03-15, last changed on 2020-02-27. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
