Tutoriel : Connexion à une base de données SQLite en utilisant FireDAC
Remonter à Tutoriels Bases de données et LiveBindings
Ce tutoriel est une application multi-périphérique Delphi simple qui montre comment établir une connexion à une base de données SQLite et exécuter une requête simple.
La base de données utilisée dans cet exemple est située dans C:\Utilisateurs\Public\Documents\Embarcadero\Studio\20.0\Samples\Data\Employees.s3db
et comporte une table nommée Employee.
Etapes
- Sélectionnez l'une des options suivantes :
- Fichier > Nouveau > Application multi-périphérique - Delphi
- Fichier > Nouveau > Application multi-périphérique - C++Builder
- Ajoutez les composants suivants à la fiche :
- Deux contrôles TButton ;
- Depuis l'inspecteur d'objets, définissez les propriétés Name des boutons sur
executeButton
etconnectButton
, puis leurs propriétés Text surExecute
etConnect
, respectivement.
- Depuis l'inspecteur d'objets, définissez les propriétés Name des boutons sur
- Un composant TFDConnection ;
- Un contrôle TMemo ;
- Définissez la propriété Name sur
outputMemo
.
- Définissez la propriété Name sur
- Un composant TFDPhysSQLiteDriverLink, pour établir la liaison entre le pilote SQLite et l'application.
Définissez la propriété Enabled de
executeButton
sur False.A ce stade, la fiche devrait ressembler à ceci :
- Deux contrôles TButton ;
- Ajoutez le code suivant au gestionnaire d'événement OnClick du
connectButton
:- Dans Delphi :
procedure TForm3.connectButtonClick(Sender: TObject); begin outputMemo.Text := '';'' // Set the path of your database file. // Replace 'C:\Users\Public\Documents\...\Employees.s3db ' with the absolute path // to your SQLite database file. FDConnection1.DriverName := 'SQLITE'; FDConnection1.Params.Values['Database'] := 'C:\Utilisateurs\Public\Documents\Embarcadero\Studio\20.0\Samples\Data\Employees.s3db'; try // Establish the connection. FDConnection1.Open; executeButton.Enabled := True; outputMemo.Lines.Add('Connection established!'); except on E: EDatabaseError do outputMemo.Lines.Add('Exception raised with message' + E.Message); end; end;
- Dans C++Builder :
void __fastcall TForm1::connectButtonClick(TObject *Sender) { outputMemo->Text = ""; // Set the path of your database file. // Replace 'C:\Users\Public\Documents\...\Employees.s3db ' with the absolute path // to your SQLite database file. FDConnection1->DriverName = "SQLite"; FDConnection1->Params->Values["DataBase"] = "C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\14.0\\Samples\\Data\\Employees.s3db"; try { // Establish the connection. FDConnection1->Open(); executeButton->Enabled = true; outputMemo->Lines->Add("Connection established!"); } catch (Exception& E) { outputMemo->Text = "Exception raised with message" + E.Message; } }
- Ajoutez le code suivant au gestionnaire d'événement OnClick de
executeButton
.- Dans Delphi :
procedure TForm1.executeButtonClick(Sender: TObject); var query: TFDQuery; begin query := TFDQuery.Create(nil); try // Define the SQL Query query.Connection := FDConnection1; query.SQL.Text := 'SELECT * FROM Employee'; query.Open(); outputMemo.Text := '';'' // Ajouter les noms de champ à partir de la table. outputMemo.Lines.Add(String.Format('|%8s|%25s|%25s|', [' ID ', ' NAME ', ' DEPARTMENT '])); // Ajouter une ligne au mémo pour chaque enregistrement de la table. while not query.Eof do begin outputMemo.Lines.Add(String.Format('|%8d|%-25s|%-25s|', [query.FieldByName('ID').AsInteger, query.FieldByName('Name').AsString, query.FieldByName('Department').AsString])); query.Next; end; finally query.Close; query.DisposeOf; end; end;
Remarque : Vous devez ajouter l'unité FireDAC.DApt.
- Dans C++Builder :
void __fastcall TForm1::executeButtonClick(TObject *Sender) { TFDQuery *query; query = new TFDQuery(NULL); __try { query->Connection = FDConnection1; // Define the SQL Query query->SQL->Text = "SELECT * FROM Employee"; query->Open(); outputMemo->Text = ""; // Add the field names from the table. TVarRec args[3] = {"ID", "NAME", "DEPARTMENT"}; outputMemo->Lines->Add(System::UnicodeString::Format("|%8s |%25s |%25s |", args, ARRAYSIZE(args) - 1)); // Add one line to the memo for each record in the table. while (!query->Eof) { TVarRec arguments[3] = {query->FieldByName("ID")->AsInteger, query->FieldByName("Name")->AsString, query->FieldByName("Department")->AsString}; outputMemo->Lines->Add(System::UnicodeString::Format("|%8d |%-25s |%-25s |", arguments, ARRAYSIZE(arguments) - 1)); query->Next(); } } __finally { query->Close(); query->DisposeOf(); } }
Remarque : Vous devez ajouter #include <FireDAC.DApt.hpp>.
- Choisissez l'une des commandes suivantes :
- Exécuter > Exécuter
- Exécuter > Exécuter sans déboguer
Voir aussi
- TFDPhysSQLiteDriverLink
- TDataSet.Eof
- System.SysUtils.Format
- FireDAC.Comp.Client.TFDConnection
- Support SQLite dans RAD Studio
- Tutoriel : Support TSQLMonitor pour les bases de données SQLite
- Inspecteur d'objets
Exemples
- Exemple FireDAC SQLite