浅析基于ADO的复杂数据库编程:数据库编程

  【摘要】随着网络数据库的普及,不同数据平台上的数据共享以及异地存取等已经成为数据库编程中不可或缺的对象,通过Delphi中ADO控件的使用,将源数据转移到目标库中创建的表中,从而能够实现不同数据平台上的数据转换和共享。
  【关键词】ADO;Delphi;数据库编程
  ADO(ActiveX Data Objects)是微软提供对各种数据格式的高层接口(high-level interface),该接口已经成为访问数据库的新的标准。使用这种接口的数据库又称为OLE DB数据库。由于网络数据库的广泛应用,ADO现在越来越成为数据库编程人员眼中的宠儿,ADO在复杂数据库编程方面的功能非常强大。OLE DB数据库可以使我们方便地访问各种类型的数据库,包括关系型或非关系型数据库、E-Mail和文件系统、文本和图形、以及各种自定义商用对象。将Delphi提供的系统数据源中的db格式数据转换为微软Access格式文件,同时,在转换过程中,根据选中的数据表,还能生成响应的创建表的SQL语句。
  1.基于ADO的体系结构
  一个基于ADO的单层或两层应用程序通常由这么几个部分组成:
  1)用户界面,其主要部件是数据控件。如果所有的数据访问都是通过程序实现的,则数据控件是可选的;
  2)一个或多个数据集构件,用于从数据库引入数据;
  3)一个或几个TDataSource构件,用于连接数据集与数据控件;
  4)一个连接构件,用于连接到数据仓库。 连接构件在数据集构件和通过数据仓库访问的数据库之间提供通道。
  基于ADO的应用程序的ADO层由以下几部分组成:Microsoft ADO 2.1,OLEDB数据库或用于数据仓库访问的ODBC驱动程序,指定的数据库系统(例如,SQL数据库)使用的客户端软件、数据库支援系统、数据库。所有这些外部实体必须存在,并且是基于ADO的应用程序可以使用的。图1 所示为ADO各组件功能
  2.ADO复杂数据库应用基本步骤
  1)关闭Delphi中当前所有活动工程,并通过执行New Application命令新建一个工程,此时,系统会自动创建一个空白窗体作为程序的默认操作区。
  2)为了实现对Access数据库的连接,需要将ADO控件链接到目标库(Access类型)中,设置ADOConnection1的Conn-ectionString属性,连接到目标库中,其他的ADO空间可以铜鼓他实现对目标库的连接。这可以通过Delphi提供的想到来实现。
  3)将其他ADO 控件的Connection属性都指向ADOConnection1,以实现对目标数据库的连接,然后设置Database空间的DataBaseName为”Iblocal”。
  4)在窗体的初始化过程中,还需要对一些控件的默认属性进行设置:首先将本地机上的所有系统数据源显示在ComBOBox1中,然后将三个按钮的Enabled属性都设置为Fasle:
  Session.GetAliasNames(ComBoBx1.items)。
  5)当在ComboBox1中选定一个数据源时,需要将该数据源中所有数据表显示在ListBox1中,由于本程序需要用到得是db格式的数据文件,所以还需设置一个过滤条件,这可以处理ComboBox1de OnChange事件:
  Session.GeTTableNames(ComboBox1.items[ComboBox1.itemindes],’*db’,false,false,listbox1.item)。
  6)如果单机“获取表结构”按钮,程序将分析选中的表的数据结构,然后生成响应的SQL语句,然后显示在Memol控件中。在这个方法的实现过程中,还需要处理一个小问题,就是如何获取对应表字段的数据类型。
  7)当SOL语句创建完毕并显示在Memol控件中,单击“创建表”将执行创建表的命令,这个操作将通过ADDCommand1控件来实现:
  Adocommand1.CommandText:=memo1.Text;
  Adocommand1.Execute。
  8)如果单击“复制数据”按钮,则将选定表中的所有数据转移到目标数据库中对应的表中。
  9)至此,完成工作。保存工程文件,然后运行程序。
  3.结束语
  总之,随着网络的普及,网络数据库越来越现实出其重要性,ADO在这方面有着其独到的强大功能。
  参考文献
  [1]网冠科技.Delphi 5.0控件时尚编程百例[M].机械工业出版社,2001,07.
  [2]刘艺.Delphi程序设计大学教程[M].机械工业出版社,2005,06.
  作者简介:刘畅(1978—),现供职于吉林工商学院信息工程学院,研究方向:计算机网络