asp教师信息管理系统—毕业设计论文内容摘要:

如数据更新不及 时、空间资源的冗余和访问效率低等等。 Microsoft 公司考虑到使所有的数据库访问标准化 (不管是否来自数据库 )而不是把相关数据库标准化,随后推出了 UDA(Universal Data Access,一致数据访问 )技术,从而较好地解决了这些问题。 UDA 技术使得应用通过一致的接口来访问各种各样的数据,而不管数据驻留在何处,也不需要 进行数据转移或复制、转换,在实现分布式的同时也带来了高效率。 另外, UDA 技术在统一数据访问接口的同时,它的多层结构使数据使用方有了更多的选择机 会;而它强大的扩展能力也给数据提供方留下了更多的扩展余地,这种开放型的软件结构使它具有极强的生命力。 所以,这种技术从一推出便获 得了广泛的欢迎,可 以说, UDA 技术是继 ODBC 之后的又一数据访问技术的飞跃。 UDA 技术为关系型或非关系型数据访问提供了一致访问接口,为企业级 Intra应用多层软件结构提供了数据接口标准。 UDA 技术包括 OLE DB 和 ADO 两层标准接口,对应于不同层次的应用开发提供不同的接口。 ADO 提供了高层软件接口,即应用层的编程接口。 它通过 OLE DB 提供的 COM接口访问数据,适合于各种客户机 /服务器应用系统和基于 Web 的应用, 尤其在各种脚本语言 (Script)或一些宏语言中直接使用更具优势。 它比其他的一些对象 模型如 DAO(Data Access Object)、 RDO(Remote Data bject)等具有更好的灵活性,使用更为方便,并且访问数据的效率更高。 OLE DB 提供了底层软件接口,即系统级的编程接口。 这组接口封装了各种数据系统的访问操作,为数据使用方和数据提供方建立了标准。 同时 OLE DB 还提供了一组标准的服务组件,它可在 C/C++语言中直接使用,用于提供查询、缓存、数据更新、事务处理等操作,数据提供方只需实现一些简单的数据操 作,在使用方就可以获得全部的数据控制能力。 UDA 技术是 Microsoft 公司采用的一种策略,它提供了访问所有类型的相关和不相关信息的通用程序。 只要 OLE DB 的数据源的供应程序存在, 一致数据访问使所有的 Visual Stadio 工具能够访问任何平台上的任何数据,如电子表格中的数据、文本文档数据、 Email 文件中的数据和通过套接字 /调制解调器连接所产生的数据等。 如图 1所示就是使用 UDA技术通过 OLE DB 访问任何数据源。 从图 1可以看出 ADO 是以 OLE DB 为基础,它对 OLE DB 进行了封装。 ADO实际上是 OLE DB 的应用层接口,这种结构也为一致的数据访问接口提供了很好的扩展性,而不再局限于特定的数据源,因此, ADO 可以处理各种 OLE DB 支持的数据源。 可以说一致数据访问技术的核心是 OLE DB, OLE DB 建立了数据访问的标准接口,它把所有的数据源经过抽象形成行集 (rowset)的概念。 OLE DB 模型主要包含以下 COM 对象: (1) 数据源对象 它对应于一个数据提供者,它负责管理用户权限、建立与数据源的连 接等初始操作。 (2) 会话对象 在数据源连接的基础上建立会话对象,会话对象提供了事务控制机制 (3) 命令对象 数据使用者利用命令对象执行各种数据操作 ,如查询命令、修改命令等。 (4) 行集对象 提供了数据的抽象表示,它可以是命令执行的结果,也可以直接由会话对象产生,它是应用程序主要的操作对象。 OLE DB 的对象模型非常简单,这种简单性也带来了灵活性,从上面的几个 COM对象也可以看出这一点。 下面我们将从应用层角度出发,通过对建立在 OLE DB基础上的 ADO 对象模型结构的分析和使用,来帮助读者进一步理解一 致数据访问技术。 二、 ADO 对象模型 ADO 对象模型定义了一组可编程的自动化对象,可用于 Visual Basic、Visual C++、 Java 以及其他各种支持自动化特性的脚本语言。 ADO 最早被用于Microsoft Inter In formation Server 中访问数据库的接口,与一般的数据库接口相比, ADO 可更好地用于网络环境,通过优化技术,它尽可能地降低网络流量。 ADO 的另一个特性是使 用简单,不仅因为它是一个面向高级用户的数据库接口,更因为它使用了一组简化的接口用以处理各种数据 源。 这两个特性使得 ADO 必将取代 RDO 和 DAO,成 为最终的应用层数据接口标准。 如图 2是 ADO 对象模型图。 在 ADO 模型中,主体对象只有 Connection、 Command和 Recordset 三个,其他四个集合对象 ( Errors、 Properties、 Parameters 和Fields)分别对应 Error、 Property、 Parameter 和 Field 对 象。 一个典型的 ADO应用就是利用 Connection 对象建立与数据源的连接,然后用Command 对象给出对数据库操作的命令 (如查询或者更新数据等 ), 而 Recordset则用于对结果集数据进行维护或者浏览等操作。 Command 命令使用的命令语言与底层所对应的 OLE DB 数据源有关。 不同的数据源可以使用不同的命令语言,对于关系型数据库,通常使用 SQL 作为命令语言。 在 Connection、 Command 和 Recordset 3 个对象中, Command 对象是个可选对象,它是否有效取决于 OLE DB 数据提供者是否实现了 ICommand 接口。 由于 OLE DB既可提供关系型数据源,也可以提供非关系型数据源,所以在非关系型数据源上使用传统的 SQL 命令查询数据有可 能无效,甚至 Command 命令对象也不能使用。 从结构上看 , ADO 模型非常简单 , 它的使用也非常灵活。 下面从单个对象的角度讨论。 1. Connection 对象 Connection 对象代表与数据源之间的一个连接, ADO 的 Connection 对象封装了OLE DB 的数据源对象和会话对象。 根据 OLE DB 提供者的不同性能, Connection对象的特性也有所不同,所以 Connection 对象的方法和属性不一定都可以使用。 利用 Connection 对象,我们可以完成以下一些基本设置操作: (1) 通过 ConnectionString、 ConnectionTimeOut 和 Mode 属性设置连接串、超时信息、访问模式; (2) 还可以设置 CursorLocation 属性以便指定使用客户端游标,以便在客户程序中使用批处理修改方式; (3) 设置连接的缺省数据库属性 DefaultDatabase; (4) 设置 OLE DB 提供者的属性 Provider; (5) 通过 Open 和 Close 控制 Connection 对象与物理数据源的连接; (6) 通过 Execute 方法执行命令; (7) 提供事务机制 , 通过 BeginTrans、 CommitTrans 和 RollbackTrans 实现事务控制。 (8) 通过 Errors 集合属性检查数据源的错误信息; (9) 通过 OpenSchema 方法获取数据库的表信息。 Connection 对象是 ADO 的基本对象之一,它独立于所有其他的对象。 如果我们要对数据库进行查询操作,既可以使用 Execute 方法,也可以使用 Command 对象。 使用 Execute 方法比较简便,但用 Command 对象可以保存命令的信息,以便多次查询。 2. Command 对象 Command 对象代表一个命令,可以通过其方法 执行针对数据源的有关操作,比如查询、修改等。 Command 对象的用法如下 : (1) 通过 CommandText 属性设置命令串; (2) 通过 Parameters 集合属性和 Parameter 对象定义参数化查询或存储过程参数; (3) 通过 Execute 方法执行命令,可能的话,返回 Recordset 对象; (4) 在执行命令之前,可通过设置 CommandType 属性优化性能; (5) 可以通过 Prepared 属性指示底层的提供者为当前命令准备一个编译过的版本,以后再执行时,速度会大大加快; (6) 通过 CommandTimeOut 属性设置命令执行的超时值 (以秒为单位 ); (7) 可以设置 ActiveConnection 属性,为命令指定连接串, Command 对象将在内部创建 Connection 对象; (8) 可以设置 Name 属性,这样以后可以在相应的 Connection 对象上按 Name 属性指定的方法名执行。 Command对象执行时,既可以通过 ActiveConnection属性指定相连的 Connection对象,也可以独立于 Connection 对 象,直接指定连接串,即使连接串与Connection 对象的连接串相 同, Command 对象仍然使用其内部的数据源连接。 3. Recordset 对象 Recordset 对象代表一个表的记录集或者命令执行的结果,并且在这个记录集中,总是有一个当前的记录。 记录集是 ADO 管理数据的基本对象,所有的 Recordset 对象都按照行列方式的表状结构进行管理,每一行对应一个记录(Record),每一列对应一个域 (Field)。 Recordset 对象也通过游标对记录进行访问,在 ADO 中,游标分为以下 4 种 : (1) 静态游标 提供对数据集的一个静态拷贝,允许各种移动操作,包括前移、后移等 等,但其他用户所做的操作反映不出来。 (2) 动态游标 允许各种移动操作,包括前移、后移等等,并且其他用户所做的操作也可以直接反映出来。 (3) 前向游标 允许各种前向移动操作,不能向后移动,并且其他用户所做的操作也可以直接反映出来。 (4) 键集 (keyset)游标 类似于动态游标,也能够看到其他用户所做的数据修改,但不能看到其他用户新加的记录,也不能访问其他用户删除的记录。 Recordset 对象的用法如下 : (1) 利用 CursorType 属性设置游标类型。 (2) 通过 Open 方法打开记录集数据,既 可以在 Open 之前对 ActiveConnection属性赋值 ,指定 Recordset 对象使用连接对象,也可以直 接在 Open 方法中指定连接串参数, ADO 将创建一个内部连接,即使连接串与外部的连接对象相同,它也使用新的连接对象。 (3) Recordset 对象刚打开时,当前记录被定位在首条记录,并且 BOF 和 EOF标志属性为 False。 如果当前记录集为空记录集,则 BOF和 EOF 标志属性为 True。 (4) 通过 MoveFirst、 MoveLast、 MoveNext 和 MovePrevious 方法可以对记录集的游标 进行移动操作。 如果 OLE DB 提供者支持相关功能的话,可以使用AbsolutePosition、 AbsolutePage 和 Filter 属性对当前记录重新定位。 (5) ADO 提供了两种记录修改方式:立即修改和批修改。 在立即修改方式下,一旦调用 Update 方法,则所有对数据的修改立即被写到底层的数据源。 在批修改方 式下,可以对多条记录进行修改,然后调用 UpdateBatch 方法把所有的修改递交到底层数据源。 递交之后,可以用 Status 属性检查数据冲突。 Recordset 对象是 ADO 数据操作的核心,它既可以作 为 Connection 对象或Command 对象执行特定方法的结果数据集,也可以独立于这两个对象而使用,由此可以看出 ADO 对象在使用上的灵活性。 上面 3 个对象都包含一个 Property 对象集合的属性 , 通过 Property 对象可使ADO 动态暴露出底层 OLE DB 提供者的性能。 由于并不是所有的底层提供者都有同样的性能,所以 ADO 允许用户动态访问底层提供者的能力。 这样既使得 ADO很灵活,又提供了很好的扩展性。 ADO 的其他集合对象及其元素对象,都用在特定的上下文环境中,比如 Parameter对象一定要与某个 Command 对象相联系后,才能真正起作用。 而另外三个对象Field、 Error 和 Property 对象只能依附于其父对象,不能单独创建这些对象。 三、 ADO 对象的方法 在 ADO 模型中,三个主体对象 Connection、 Command 和 Recordset 对应有许多方法,比如 Open、 Close 和 Execute 等,下面就常用的一些方法原型进行简单的介绍,以帮助读者在使用过程中能够更好的理解。 1. Connection 中的方法 所有的 Connection 对象支持下列方法 (虽然也可能提供其它方法 ): Open 用于打 开数据源的连接。 Close 用于关闭一个数据源连接和它们相关对象。 Execute 对连接的数据源执行命令,大多数情况下,它是一个 SQL 查询。 BeginTrans 开始一个关于连接的事务。 CommitTrans 提交当前事务。 Rol。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。