Delphi数据库编程教程(三)[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 eagletian 的 blog

第三节 ado(activex data objects)编程模型

      如文章“delphi中引入ado”所叙述的,ado是一套com(component object model组件对象模型)组件(dlls),它允许你像访问电子邮件和文件系统一样访问数据库。使用ado编写的应用程序不需要bde。为了用ado访问各种数据库,你需要有ado/ole db(object linking and embedding对象链接和嵌入)库。使用ado所需要的可能在你的计算机中已存在:这些文件被微软作为windows98/2000的一部分分发。如果你使用的是windows95或nt,你可能需要分发或安装ado引擎。delphi 5的cd中包含有mdac-microsoft data access components(微软数据访问组件)的安装文件。你应该确定使用的是mdac的最新版本,它可以从微软的官方网站获得。mdac是使universal data access(通用数据访问)起作用的关键技术。它们包括activex data objects(ado)、ole db和open database connectivity(odbc)。

      注:为了在windows95的计算机上正确安装,mdac需要dcom95(distributed component object model分布式组件对象模型)已被安装。为了正确的注册,mdac所安装的组件依赖于dcom95所安装的dlls。注意,dcom95在nt4.0中是不需要的。在某些情况下,dcom不需要安装在运行windows的计算机中。但如果没有被安装,安装mdac前应安装dcom98。

       没有必要过多的讨论ole db和ado,让我们转移到更实际的问题上。

      ado 对象ado objects

      ado编程模型围绕着几个ado对象而建立,这些对象为访问各种数据员提供多种方法。这些对象提供连接数据源、查询和更新记录集、报告错误的功能。delphi通过几个vcl组件通过访问这些对象的封装组件。让我们看一下与ado工作的对象是那些:

      connection (连接)对象,通过连接字符串与数据源连接。在bde/delphi中,连接对象是数据库组件和会话(session)组件的结合。

      command (命令)对象,使我们能操作数据源。它描绘一个命令(也视为查询或叙述),能处理对数据库数据的增加、删除、查询或更新。

      recordset (记录集)对象,是查询(query)命令的结果。你可以认为recordset 是一个delphi表(table)组件或查询(query)组件。recordset 返回的每一行都包含多个字段(field)对象。

      其他几个在ado模型中存在的对象有:字段(field)对象、参数(parameter)对象和错误(error)对象—在接下来的章节中将会回过来谈到它们。

 

第四节  用adoexpress连接数据库

      在对adoexpress集合的每个组件进行简要的解释之前,让我们首先了解一下怎样连接到access数据库。当然,当然我们将连接到我们的样例数据库—aboutdelphi.mdb(译者加:在上一章中所建立的数据库)。

      delphi(5)主要通过组件面板ado页上的adoexpress组件实现对ado的支持。几个其他的数据库使能组件在本课程中将被使用。目前,我们将主要关注用ado访问access数据库所需的最小的组件集。

      运行delphi,建立一个新的带有空的表单的应用程序。

      为了能通过ado和delphi访问access数据库的数据,你必须在你的工程中至少增加三个数据可视(data aware)组件。首先是数据控制(datacontrols)组件页的dbgrid—用于浏览从一个表格或通过查询获得的记录。其次是datasource(dataaccess数据访问页),用于连接数据集和表单上的dbgrid组件,从而实现潜在数据集数据的现实、导航(navigation)和编辑。最后是adotable(ado页),它描绘从ado数据库获得的一个表。把它们都拖放在表单(form)上,组件名都取默认值。这时表单应如图所示:

                                     

      如果你现在运行程序,grid中没有数据显示—当然,因为我们没有真正地连到数据库上。注意另一点:仅仅grid使可见的,其他两个组件是不可视控件(controls-unvisible)。

      组件间的连接(link between components)

       为了显示数据库中的数据,我们必须把三个组件连在一起。在对象监视器(object inspector)中进行如下设置:    

       dbgrid1.datasource = datasource1;
       datasource1.dataset = adotable1 ;

       现在我们到了比较难的部分了,为了真正从数据库中获得数据,我们必须建立一个连接字符串(connectionstring)。这个字符串指出了数据库的物理存储位置和访问方式。当你双击adotable组件的connectionstring(连接字符串)属性的省略号按钮,你将得到如下的对话框:

connection string
      建立一个连接字符串时,我们有两种选择:使用data link file(数据连接文件)(.udl)或手工建立一个连接字符串。现在我们手工建立它,点击build按钮—弹出data link properties(数据连接属性)对话框。这个对话框有4页。provider(提供者)页允许你指定提供者—这里选择microsoft jet 4.0 ole db provider。点击next(下一个)按钮将引导我们进入第二页:connection(连接)。选择省略号按钮浏览找到我们的数据库(aboutdelphi.mdb)。可以点击test connection(测试连接)按钮检验是否可以成功连接—应该是成功的。其它页暂时不进行设置。最后,点击ok关闭data link properties对话框,再点击ok关闭connectionstring对话框—连接字符串被存储在adotable组件的connectionstring属性中。连接字符串已如下所示:
      provider=microsoft.jet.oledb.4.0;
      data source=c:\!gajba\about\aboutdelphi.mdb;

本文关键:ADO、ADO组件
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top