In this post we would like to give a very simple example to connect to a MySQL Database in C++ Builder with FireDAC Component which comes with RAD Studio officially.
MySQL is one of the world’s most popular open source database and it is very easy and very useful to use small to large scale databases. MySQL has MySQL Service and different editions ( Enterprise, Standard, Classic, Cluster CGE and Embedded versions). MySQL Classic Edition is good to begin with database applications, the ideal embedded database for ISVs, OEMs and VARs developing read-intensive applications using the MyISAM storage engine. The MySQL Classic Edition has lower TCO, ease of use, requires lower administration skills, and it supports over 20 platforms and operating systems. It is known as a high performance and zero administration database.
FireDAC component pack is one of the great component for database connections that comes with RAD Studio, C++ Builder or Delphi officially. FireDAC is a Universal Data Access library for developing applications for multiple devices, connected to enterprise databases. With its powerful universal architecture, FireDAC enables native high-speed direct access from Delphi and C++Builder to InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix, DataSnap and more, including the NoSQL Database MongoDB.
FireDAC is a Universal Enterprise Data Connectivity
To use FireDAC with C++ Builder, be sure that your RAD Studio, C++ Builder version has support to this component, we highly recommend here C++ Builder 10.x or above because of improvements on database connections. If you dont have this component in you version there is a Trial version of FireDAC officially that you can test and then you can purchase. In a new C++ Builder Project (VCL or FMX), you can drag and use it’s components on your forms, or professionally you can add a new DataModule to your project and you can drag and use them by adding it’s header to other required forms.
If you created a MySQL database with a table and you have installed FireDAC Components in your Component Palette, Let’s see steps to connect to a MySQL database and query a table.
1. To use MySQL with FireDAC you need it’s libmysql.dll library. This library can be found in the lib folder of MySQLConnector C tool. Copy this library to your application folder or given Windows folders below;
2. Create a new C++ Builder Project in VCL or FMX.
3. Basically to connect to a database table in a MySQL server, we need 4 FireDAC Components . Drag FDConnection (TFDConnection), DataSource (TDataSource) , FDQuery (TFDQuery), FDCommand (TFDCommand) components on to your Form (TForm) or to your DataModule (TDataModule).
4. Set Connection property of FDQuery1 as FDConnection1
and Set DataSet property of DataSource1 to FDQuery1
5. Double click to FDConnection component to enter MySQL server connection details.
Enter parameters as below;
Driver ID:
We will connect to MySQL database, so Driver ID should be MySQL
Server:
If you connect to a remote MySQL Server type its MySQL IP or MySQL address
If you connect to a server on your computer- set <LOCAL> or your computer IP address
Port:
It is generally 3306, if you or your host setup a different port number check your port number from MySQL administration or host settings.
Username and Password:
If you haven’t create any username for your specific table, including with user privileges, you can use root and it’s password. If you have username for this table, you can use this username and it’s password to connect.
That’s all, now you can check your connection directly by enabling or disabling it’s Connected feature.
6. Now you can directly connect in C++ Builder with this component by using FDConnection1 component property as below;
1 |
FDConnection1->Connected=true; |
You can check if it is connected by if clauses as below,
1 2 3 4 5 6 7 8 |
if(FDConnection1->Connected) { // Open a Table or tables and do some other commands } else { // Show message that you can't connect, may be use has wrong username or password } |
For example you can do this on a button as below;
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void __fastcall TForm1::Button1Click(TObject *Sender) { if(DM->FDConnection1->Connected) { DM->FDConnection1->Disconnect(); Button1->Text=u"Connect"; } else { DM->FDConnection1->Connect(); Button1->Text=u"Disconnect"; } } |
1 |
7. MySQL using its own SQL language to query tables in it’s database, for example if you have a table with a name mytable, you can list all data by using this query
1 |
select * from mytable; |
This query can be directly added to SQL property of FDQuery1 by double clicking to FDQuery1,
or, you can add your own SQL query in your code lines by double clicking to a Button, as below;
1 2 3 4 5 6 |
void __fastcall TForm1::Button2Click(TObject *Sender) { DM->FDQuery1->SQL->Clear(); DM->FDQuery1->SQL->Add("Select * from mytable;"); DM->FDQuery1->Open(); } |
Full video about FireDAC can be found here Introduction to FireDAC – Multi-device data access for Delphi and C++Builder
First Steps to Use FireDAC
http://docwiki.embarcadero.com/RADStudio/Sydney/en/First_Steps_to_Use_FireDAC
Design. Code. Compile. Deploy.
Start Free Trial
Free C++Builder Community Edition