首页 理论教育 用ADOData控件提升数据库应用

用ADOData控件提升数据库应用

时间:2023-11-04 理论教育 版权反馈
【摘要】:ADO Data控件使用Microsoft ActiveX数据对象来快速建立数据绑定的控件和数据提供者之间的连接。尽管可以在应用程序中直接使用ActiveX数据对象,但ADO Data控件是一个图形控件,有一个易于使用的界面,使用户可以用最少的代码创建数据库应用程序。ADO Data控件可以实现下面的功能:●连接一个本地数据库或远程数据库。ODBC数据库应用程序ODBC称为开放数据库系统互连,是Microsoft公司开发和定义的一套数据库访问标准,目前已经广泛地应用在数据库的程序设计和开发中。

用ADOData控件提升数据库应用

ADO Data控件使用Microsoft ActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有数据源属性的控件。数据提供者可以是任何符合OLE DB规范的数据源。尽管可以在应用程序中直接使用ActiveX数据对象,但ADO Data控件是一个图形控件,有一个易于使用的界面,使用户可以用最少的代码创建数据库应用程序。在Visual Basic的“工具箱”中,不少控件都可以作为数据绑定的控件,包括复选框、组合框、图像、标签、列表框、图片框及文本框控件等。此外,Visual Basic还包括了若干种数据绑定的ActiveX控件,如DataGrid、DataCombo、Chart及DataList控件等。用户也可以创建自己的数据绑定的ActiveX控件,或从其他开发商购买控件。

ADO Data控件可以实现下面的功能:

●连接一个本地数据库或远程数据库。

●打开一个指定的数据库表或该数据库中的表的视图的记录集合,或者定义一个基于结构化查询语言的查询或存储过程。

●将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。

●添加新的记录,或根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。

这里将结合配置好的数据源,给出一个用Visual Basic连接SQL Server 2005的实例,即创建一个客户或前端数据库应用程序,并在窗体中添加ADO Data控件,以及其他所需要的任何Visual Basic控件。操作步骤如下:

1)打开Visual Basic 6.0,创建一个标准工程(standard exe)。

2)在窗体上放置一个ADO Data控件978-7-111-36808-3-Chapter03-14.jpg(该图标的工具提示为“ADODC”),如果该控件不在“工具箱”中,请按<Ctrl+T>组合键,显示“部件”对话框。在这个“部件”对话框中,单击“Microsoft ADO Data Control”,再单击“应用”按钮

3)在“工具箱”中,单击选定“ADO Data控件”,在工程的窗体的底部画一长方形,即可引入ADO Data控件,如图3-14所示。

4)确认ADO Data控件处于选中状态,然后在“属性”窗口中选择“Connection-String”,单击右侧的978-7-111-36808-3-Chapter03-15.jpg图标,打开“属性页”对话框,单击“使用ODBC数据源资源名称”单选按钮,在其中选择“student”数据源,如图3-15所示。

978-7-111-36808-3-Chapter03-16.jpg

图3-14 添加ADO Data控件

978-7-111-36808-3-Chapter03-17.jpg

图3-15 选择“student”数据源

5)单击“确定”按钮,然后在“属性”窗口中选择“UserName”或者“Password”属性,单击右侧的978-7-111-36808-3-Chapter03-18.jpg图标,打开“身份验证”选项卡,如图3-16所示。

978-7-111-36808-3-Chapter03-19.jpg

图3-16 设置用户名称和密码

6)在“属性”窗口中,选择“RecordSource”属性,单击右侧的978-7-111-36808-3-Chapter03-20.jpg图标打开“属性页”对话框,选择“命令类型”,其中共有4种类型:

●1-adCmdText:文本类型命令,常用来输入SQL语句。

●2-adCmdTable:表类型命令,常用来选择数据库中的表。

●4-adCmdStroedProc:存储过程类型命令,常用来选择一个存储过程。

●8-adCmdUnknown:未知类型命令。

本例选择比较简单的2-adCmdTable。

接下来在“表或存储过程名称”下拉列表框中选择一个表,如学生基本情况表,如图3-17所示。

7)在窗体中加入5个标签:学号、姓名、性别、年龄和家庭地址,再加入5个文本框,按照如图3-18所示进行排列,其中所有文本框的“DataSource”属性均设置为“Adodc1”(即第3步所加入的ADO Data控件名),然后将Text1、Text2、Text3、Text4和Text5的“DataField”属性分别设置为学号、姓名、性别、年龄和家庭地址,这样就将文本框和ADO Data控件绑定在一起。其设置如图3-19所示。

978-7-111-36808-3-Chapter03-21.jpg

图3-17 记录源设置

978-7-111-36808-3-Chapter03-22.jpg

图3-18 在窗体中加入其他需要的控件

8)按<F5>键运行该应用程序。用户可以在ADO Data控件中使用4个箭头按钮,从而允许用户浏览表的第一条记录、前移一条记录、后移一条记录或最后一条记录,如图3-20所示。

978-7-111-36808-3-Chapter03-23.jpg

图3-19 设置文本控件的属性

978-7-111-36808-3-Chapter03-24.jpg

图3-20 运行应用程序的结果

读一读

1.集成开发环境与数据库交互的方式

对不同的应用系统,可以选择不同的集成开发环境,现在的集成开发环境大多都提供了对数据库进行操作的方法或对象,如Visual C++、Visual Basic、Power Builder、Dephi、PCB等。在使用集成开发环境开发数据库应用程序时,经常采用下面一些方式与数据库进行交互。

(1)嵌入式SQL

SQL语句可以单独在数据库系统本身中执行,但如果运用在其他编程工具所编制的程序中,一般不能单独执行,而要把SQL语句嵌入到高级语言中使用,通过高级语言的命令和方法来调用它,此时的SQL称为嵌入式SQL。调用SQL语句的程序称为宿主程序。

嵌入式SQL将SQL语句直接嵌入到程序的源代码中,与其他程序设计语言的语句混合使用,例如C语言就支持SQL语句的嵌入。嵌入式SQL的操作过程如下:

1)首先使用SQL的预编译程序将嵌入的SQL语句转换成能被程序设计语言的编译器识别的函数进行调用。SQL Server的编译器是nsqlprep.exe程序。

2)接着使用程序设计语言的编译器对转换后的文件进行编译,然后连接为可执行程序。

嵌入式SQL在使用上有一些规定:

●在程序中要区分SQL语句和宿主语言的语句。

●允许SQL语句使用宿主程序的变量,但使用时要将宿主程序的变量跟外部数据库中表格的字段名区别开来。

●要将字段名跟字段值区别开来。(www.xing528.com)

●SQL语句要用半角输入法输入,否则可能会出错。

(2)ODBC数据库应用程序

ODBC称为开放数据库系统互连,是Microsoft公司开发和定义的一套数据库访问标准,目前已经广泛地应用在数据库的程序设计和开发中。

ODBC提供了一种编程接口,可以使用一个ODBC应用程序访问多种数据库管理系统的数据库,如dBase、Access、MS SQL Server及Oracle等,也就是说,运用ODBC数据源中所提供的连接代码,可以实现对多种数据库的连接。

ODBC提供了许多的API函数,用来对数据库进行操作。在应用系统中可以直接使用这些函数。而数据库的底层操作由各个数据库的驱动程序来完成,这就使ODBC非常灵活,具有良好的适应性和可移植性。

(3)OLE DB数据库程序设计

OLE DB是Microsoft公司开发的一种高性能的、基于COM的数据库技术,提供数据访问的系统级编程接口。OLE DB主要用作所有数据库类型的标准界面。除了关系数据库外,OLE DB还提供了对各种各样数据源的访问,如Excel电子表格、电子邮件等。并且使用OLE DB,用一个界面就可以访问多个数据源。

2.ODBC基本知识

ODBC是Microsoft公司WOSA(开放服务结构)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL的支持,用户可以直接将SQL语句送给ODBC。

一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

一个完整的ODBC由下列几个部件组成。

●应用程序(Application):应用程序执行处理并调用ODBC函数。

●ODBC管理器(Administrator):该程序位于Windows控制面板,其主要任务是管理安装的ODBC驱动程序和管理数据源。

●驱动程序管理器(Driver Manager):驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

●ODBC API:ODBC提供的应用程序编程接口,应用程序通过对ODBC API函数的调用来与数据库进行数据交换。

●ODBC驱动程序:是一些DLL程序,提供了ODBC和数据库之间的接口。

●数据源:数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

各部件之间的关系如图3-21所示。

978-7-111-36808-3-Chapter03-25.jpg

图3-21 完整的ODBC各部件之间的关系

应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

3.OLE DB和ADO

随着数据库技术的不断发展,现在的应用系统对数据集成的要求越来越高,这些数据有可能分布在不同的地方,并且使用不同的格式。例如,关系数据库和操作系统中的文件、电子表格、电子邮件、多媒体数据及目录服务信息等。

传统的解决方案是使用大型的数据库系统,把所有这些数据都移到数据库系统中,然后按照操作数据库的办法对这些数据进行访问,这样做虽然能够按统一的方式对数据进行各种操作,但这种间接访问方式带来了很多问题,如数据更新不及时、空间资源的冗余和访问效率低等。

Microsoft公司推出的一致数据访问(UDA)技术则较好地解决了这些问题,它使得应用通过一致的接口来访问各种各样的数据,而不管数据驻留在何处,也不需要进行数据转移或复制、转换,在实现分布式的同时也带来了高效率。UDA技术在统一数据访问接口的同时,它的多层结构使数据使用方有了更多的选择机会,而它强大的扩展能力也给数据提供方留下了更多的扩展余地,这种开放型的软件结构使它具有极强的生命力,可以说,UDA技术是继ODBC之后的又一数据访问技术的飞跃。

UDA技术包括OLE DB和ADO两层标准接口,OLE DB是系统级的编程接口,它定义了一组COM接口,这组接口封装了各种数据系统的访问操作,这组接口为数据使用方和数据提供方建立了标准,OLE DB还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作,因此,数据提供方只需实现一些简单的数据操作,使用方就可以获得全部的数据控制能力。

ADO是应用层的编程接口,它通过OLE DB提供的COM接口访问数据,适合于各种客户机/服务器应用系统和基于Web的应用,尤其在一些脚本语言中访问数据库操作是ADO的主要优势。ADO是一套用自动化技术建立起来的对象层次结构,它比其他的一些对象模型如DAO、RDO等具有更好的灵活性,使用更为方便,并且访问数据的效率更高。

4.OLE DB体系结构

OLE DB创建于OLE(对象的链接与嵌入)技术基础上,它可以和任何Visual Studio产品协同工作。Microsoft公司定义了OLE DB的4个主要类型。

●数据提供者:指使用OLE DB软件开发工具创建OLE DB提供者的人。

●数据消费者:访问数据库中信息的应用程序、系统驱动程序或者用户。

●数据服务提供者:创建用以增强用户或者数据库管理员使用或者管理数据库能力的独立应用程序。

●部件开发者:创建应用程序模块或者部件,以减少创建数据库应用程序所需的编码工作。

一般来说,OLE DB消费者通过OLE DB用户界面和OLE DB提供者来访问数据源,对于不同的OLE DB提供者,OLE DB提供不同级别的功能,但是它们支持一个通用的用户界面,不同的OLE DB数据源使用自己的OLE DB提供者,图3-22显示了应用程序通过ADO和OLE DB提供者来访问不同类型数据源的软件层次模型

从图3-22中可以看出,应用程序既可以通过ADO访问数据也可以直接通过OLE DB访问数据,而ADO则通过OLE DB访问底层数据。而且,OLE DB分成两部分,一部分由数据提供者实现,包括一些基本功能,如获取数据、修改数据、添加数据项等;另一部分由系统提供,包括一些高级服务,如游标功能、分布式查询等。这样的层次结构既为数据使用者提供了多种选择方案,又为数据提供方简化了服务功能的实现手段,它只需按OLE DB规范编写一个COM组件程序即可,使得第三方发布数据更为简便,而在应用程序方可以得到全面的功能服务,这充分体现了OLE DB两层结构的优势。

由于OLE DB和ADO都以COM组件的形式实现,所以COM组件的各种特性也使得构建数据应用更为灵活,而不仅仅局限于一般的客户机/服务器或Web应用模型,它既适合于以数据为中心的应用,也适合于多层结构的分布式软件系统。通过对COM组件的配置,可以建立各种复杂的应用系统。

978-7-111-36808-3-Chapter03-26.jpg

图3-22 应用程序通过ADO和OLE DB提供者访问数据源的软件层次模型

OLE DB建立了数据访问的标准接口,它把所有的数据源经过抽象形成行集(rowset)。OLE DB模型主要包括以下一些COM对象。

●数据源对象:数据源对象对应于一个数据提供者,它负责管理用户权限、建立与数据源的连接等初始操作。

●会话对象:在数据源连接的基础上建立会话对象,会话对象提供了事务控制机制。

●命令对象:数据使用者利用命令对象执行各种数据操作,如查询命令、修改命令等。

●行集对象:提供了数据的抽象表示,它可以是命令执行的结果,也可以直接由会话对象产生,它是应用程序主要的操作对象。

从上面的几个COM对象也可以看出,OLE DB的对象模型非常简单,这种简单性也带来了其使用的灵活性。归纳总结

通过这次任务的实践,了解了数据库应用程序开发的三层结构,熟悉了VB开发平台的使用,掌握了数据库应用程序开发的基本方法,学会了ODBC数据源的配置和管理,掌握了ADO控件的使用方法,学会了简单数据库应用程序的开发技能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈