FireDAC.MySQL Sample
This sample demonstrates how to use FireDAC to work with MySQL databases.
Contents
Location
You can find the MySQL sample project at:
- Start | Programs | Embarcadero RAD Studio 10.2 Tokyo | Samples and then navigate to:
Object Pascal\Database\FireDAC\Samples\Getting Started\MySQL
- Subversion Repository:
Description
The MySQL getting started sample shows how to use FireDAC with MySQL databases. This sample allows the user to create temporary connection definition at run time and master-details relationship between datasets using TFDQuery to work with MySQL databases.
How to Use the Sample
- Navigate to the location given above and open
GettingStarted.dproj
. - Press F9 or choose Run > Run.
Files
File in Delphi | Contains |
---|---|
|
The project itself. |
|
The main form. |
Implementation
The sample implements the following features.
Creating temporary connection definition
The simplest way to configure connection to MySQL database at run time is to build a temporary connection definition:
with dbMain do begin
Close;
// create temporary connection definition
with Params do begin
Clear;
Add('DriverID=MySQL');
Add('Server=127.0.0.1');
Add('Port=3306');
Add('Database=FDDemo');
end;
Open;
end;
In the sample, the temporary definition is created when clicking the Connect button.
Master Details
In the demo database, the Categories and Products tables have one-to-many relation by CategoryID
field. The qryCategories.SQL property is set up as follows:
select * from Categories
In addition, the qryProducts.SQL property is set up as follows:
select * from Products
where CategoryID = :CategoryID
Finally, the qryProducts.MasterSource property is set to dsCategories
, while the MasterFields property is set to CategoryID
. This creates a master-details relationship between the datasets.
Executing queries
Simple queries execution is demonstrated via ExecSQL method of TFDConnection.
Inserting a record providing parameters of various types:
dbMain.ExecSQL('insert into Categories(CategoryName, Description, Picture) ' +
'values(:N, :D, :P)', ['New category', 'New descr', $0334]);
Updating records:
dbMain.ExecSQL('update Products set UnitPrice = UnitPrice * :P1 + :P2 ' +
'where ProductID < 3', [Random(5), Random(3)]);
Deleting a record:
dbMain.ExecSQL('delete from Categories where CategoryName like :N', ['New category']);
Getting a scalar value from the database:
iID := dbMain.ExecSQLScalar('select MAX(CategoryID) from Categories');
Uses
See Also
- Defining Connection (FireDAC)
- Connect to MySQL Server (FireDAC)
- Master-Detail Relationship (M/D)
- MySQL Server Questions (FireDAC)
Samples
- FireDAC InterBase sample
- FireDAC MSAccess sample
- FireDAC MSSQL sample
- FireDAC SQLite sample
- FireDAC Firebird sample