C++Builder下如何用FireDAC控件访问SQLite数据库
2018-01-07 12:06
639 查看
(同一个世界,同一个梦想,交流学习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->RowsAffecte
4000
d>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自带的数据库访问控件,优点是通用,可以访问几乎所有数据库,缺点是发布时需要打包驱动程序,对于文件数据库还算可以,但是对于网络数据库不是十分方便。
软件及版本: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->RowsAffecte
4000
d>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自带的数据库访问控件,优点是通用,可以访问几乎所有数据库,缺点是发布时需要打包驱动程序,对于文件数据库还算可以,但是对于网络数据库不是十分方便。
相关文章推荐
- C++Builder下如何使用UniDAC控件访问ORACLE数据库
- 教你如何解决“线程间操作无效: 从不是创建控件的线程访问它” 转
- 如何访问DetailsView控件EditItemTemplate中的控件?
- 通过按钮事件如何访问datalist中控件的内容
- Asp.Net 客户端JS如何访问服务端控件的值?
- 用IE访问TD时,如何应对控件安装不上的情况
- c#如何在多线程中访问Form中控件的多种解决方案
- 如何访问嵌套母版页中的控件
- 如何在mfc中通过线程向主窗口发送数据或者是访问控件
- 如何在使用了TemplateField的GridView控件中访问Cell值?
- iOS多线程编程中,子线程如何访问和操作主线程UI中的视图控件(下载操作用子线程实现)
- 如何在Java中访问SQLite数据库
- 全局函数如何访问对话框控件
- 如何访问Formview中的控件
- ASP.NET中如何访问用户控件里面的控件的值
- c# winform下使用多线程时在线程里如何安全访问窗体控件InvokeRequired
- 如何访问一个控件的 Protected 段的成员,改变 DBNavigator 的行为
- 安卓如何关联XML,并且访问XML里面的控件
- c#如何在多线程中访问Form中控件的多种解决方案(收集)
- C#.NET常见问题(FAQ)-如何使用变量访问控件属性