-
c语言入门之在C++ Builder中使用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))
//数据库别名不存在
{
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下调试运行通过。
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))
//数据库别名不存在
{
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下调试运行通过。
最新更新
Objective-C语法之代码块(block)的使用
VB.NET eBook
Add-in and Automation Development In VB.NET 2003 (F
Add-in and Automation Development In VB.NET 2003 (8
Add-in and Automation Development in VB.NET 2003 (6
Add-in and Automation Development In VB.NET 2003 (5
AddIn Automation Development In VB.NET 2003 (4)
AddIn And Automation Development In VB.NET 2003 (2)
Addin and Automation Development In VB.NET 2003 (3)
AddIn And Automation Development In VB.NET 2003 (1)
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
武装你的WEBAPI-OData入门
武装你的WEBAPI-OData便捷查询
武装你的WEBAPI-OData分页查询
武装你的WEBAPI-OData资源更新Delta
5. 武装你的WEBAPI-OData使用Endpoint 05-09
武装你的WEBAPI-OData之API版本管理
武装你的WEBAPI-OData常见问题
武装你的WEBAPI-OData聚合查询
OData WebAPI实践-OData与EDM
OData WebAPI实践-Non-EDM模式