C++Builder下如何用FireDAC控件访问SQLite数据库

(同一个世界,同一个梦想,交流学习C++Builder XE10,传承c++builder的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。)

软件及版本:C++Builder 10.2.2 tokyo,SQLite Expert Professional 3

1、下载和安装配置SQLITE数据库SQLite Expert Professional 3

运行数据库软件,创建数据库test.db和表mytable。


2、创建项目添加控件

主窗口命名为FormMain,摆放FDConnection、FDQuery、FDPhysSQLiteDriverLink、FDGUIxWaitCursor、DataSource、DBGrid、Button控件.


DBGrid1的DataSource设为DataSource1

DataSource1的DataSet设为FDQuery1

FDQuery1的Connection属性设为FDConnection1

FDConnection1的DriverName设为SQLite,LoginPrompt设为False

3、在FormMain的OnActivate事件中绑定打开数据库文件

void __fastcall TFormMain::FormActivate(TObject *Sender)
{
AnsiString mainPath=ExtractFilePath(Application->ExeName);//获取执行程序的绝对路径
FDConnection1->Connected=false;
if(mainPath=="D:\\test\\Win32\\Debug\\") //此处目录区分大小写哈
    {
    FDConnection1->Params->Database="D:\\test\\test.db";
    }
else
    {
    FDConnection1->Params->Database=mainPath+"\\test.db";
    }

FDConnection1->Connected=true;

}

4、向表格中插入数据

//---------------------------------------------------------------------------
void __fastcall TFormMain::Button1Click(TObject *Sender)
{
AnsiString mySql;
AnsiString myName="张三";
int myAge=78;

FDQuery1->Close();
FDQuery1->SQL->Clear();
mySql="insert into mytable values(:p1,:p2)";
FDQuery1->SQL->Text=mySql;
FDQuery1->ParamByName("p1")->Value=myName;
FDQuery1->ParamByName("p2")->Value=myAge;
FDQuery1->ExecSQL();

if(FDQuery1->RowsAffected>0)
    {
    ShowMessage("插入成功!");
    }
}

5、查询数据

//---------------------------------------------------------------------------
void __fastcall TFormMain::Button2Click(TObject *Sender)
{
AnsiString mySql;
FDQuery1->Close();
FDQuery1->SQL->Clear();
mySql="select * from mytable";
FDQuery1->SQL->Text=mySql;
FDQuery1->Open();
}

优劣势分析:

FireDAC是RAD自带的数据库访问控件,优点是通用,可以访问几乎所有数据库,缺点是发布时需要打包驱动程序,对于文件数据库还算可以,但是对于网络数据库不是十分方便。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值