在CB中使用ACCESS数据库

ZDNet软件频道 时间:2008-09-06 作者: |  我要评论()
本文关键词:ACCESS 数据库 C++ Linux
Access数据库在管理中得到了广泛的应用,在长期的使用中已有很多数据资料存储在Access数据库的文件中,用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选单项,在下拉选单中点击DatabASEDesktop就进入了C++Builder自带的数据库系统。然后在Database Desktop的

  tools项中选择Alias Manager来为ACCESS数据库创建别名。创建别名的方法是:首先点击“New”按钮,然后在弹出对话框的Database alias栏内为数据库起一个别名,例如“mydatabase”,在Drive type栏选择MSACCESS;在DATABASENAME栏内填入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="DATABASENAME="+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将MS

  ACCESS驱动配置中的DLL32由IDDAO32.DLL改为IDDA3532.DLL,并保存这个配置。

  为了使程序运行得更流畅,可以在DatabASE1的OnLogin事件函数中加入以下代码:

  LoginParams->Values["PASSWORD"]="";

  LoginParams->Values["USERNAME"]="";

  这样在运行程序时就不会弹出数据库登录的对话框了。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134