在C++中使⽤Access数据库
Access数据库在管理中得到了⼴泛的应⽤,在长期的使⽤中已有很多数据资料存储在Access数据库的⽂件中,⽤C++ Builder编程时,往往也需要使⽤Access数据库,来实现数据的传递。
在C++ Builder中使⽤Access数据库既可以在设计期实现,也可以在运⾏期通过编程实现。下⾯就以⼀个简单的例⼦,来说明在C++ Builder中如何使⽤Access数据库。
在设计期使⽤Access数据库
⾸先新建⼀个⼯程,保存单元⽂件为Unit1.cpp,保存⼯程⽂件为Project1.bpr。假设保存⼯程⽂件的路径下已有⼀个Access数据库⽂件student.mdb,下⾯需要为该数据库创建⼀个别名。点击C++ Builder的tools选单项,在下拉选单中点击Database Desktop就进⼊了C++ Builder⾃带的数据库系统。然后在Database Desktop的tools项中选择Alias Manager来为Access数据库创建别名。创建别名的⽅法是:⾸先点击“New”按钮,然后在弹出对话框的Database alias栏内为数据库起⼀个别名,例如“mydatabase”,在Drive type栏选择MSACCESS;在DATABASE NAME栏内填⼊Access数据库⽂件的路径及⽂件名,其余项⽬可以根据需要填写,然后点击“OK”按钮,会弹出⼀个是否保存别名设置的对话框,选择“是”,这样数据库别名就创建完成了。
在表单Form1中放置⼀个TDatabase控件Database1,并设置以下属性:AliasName属性选择已创建的别
名“mydatabase”,DatabaseName属性填写⼀个应⽤程序专⽤的别名,如“app_alias”(⽆需创建);Connected属性选择true,这时会弹出⼀个数据库登录对话框,如果未设⽤户名和⼝令,则直接点击“OK”,如果在创建别名时设有⽤户名和⼝令,正确填写后再点击“OK”就可以连接数据库了。
在表单Form1中增加⼀个TTable控件Table1并在DatabaseName属性中填写应⽤程序的专⽤别名,本例为“app_alias”,TableName属性中选择⼀个需要的数据表名,Active属性设为true。在表单Form1中增加⼀个TDataSource控件DataSource1,将其DataSet属性设为Table1。再增加⼀个TDBGrid控件DBGrid1和TDBNavigator控件DBNavigator1,将它们的DataSource属性都设为DataSource1,这样就可以看到Access数据库中的内容了,并通过控件DBNavigator1可以对数据库进⾏⼀些简单的操作。如果要对数据库进⾏更多的操作可以通过对Table1编程来实现,在此不再赘述。在设计期使⽤Access数据库简单、快捷,但灵活性差⼀些。
在运⾏期使⽤Access数据库
在运⾏期使⽤Access数据库,在表单Form1中除了以上控件外,还需增加⼀个BDE会话期对象,即TSession控件Session1。将AutoSessionName属性设为true,然后在Form1的OnCreate事件函数中加⼊以下代码:
AnsiString app_path,alias_1,name_1;
app_path=ExtractFilePath(ParamStr(0));
//取得应⽤程序的路径
alias_1="mydatabase2";
//Access数据库别名
name_1="DATABASE NAME="+app_path+"123.mdb";
if(!Session1->IsAlias(alias_1))
//数据库别名不存在
{
access数据库用什么软件 TStringList dataname=new TStringList();
dataname->Add(name_1);
Session1->AddAlias(alias_1,"MSACCESS",dataname);//创建别名
delete dataname;
Session1->Close();
}
Database1->AliasName=alias_1;
Database1->DatabaseName="app_alias";
Table1->DatabaseName=Database1->DatabaseName;
Table1->TableName="xxys";
Table1->Active=true;
注意:在运⾏以上程序之前,别忘了进⼊BDE Administrator将MSACCESS驱动配置中的DLL32由IDDAO32.DLL改为IDDA3532.DLL,并保存这个配置。
为了使程序运⾏得更流畅,可以在Database1的OnLogin事件函数中加⼊以下代码:
LoginParams->Values["PASSWORD"]="";
LoginParams->Values["USERNAME"]="";
这样在运⾏程序时就不会弹出数据库登录的对话框了。
以上程序在Windows95操作系统,C++ Builder 3下调试运⾏通过。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论