ASP程序设计及应用(第二版)-电子教案及源代码-张景峰 第9章 ADO对象
第9章 ADO对象,9.1 ADO概述 9.2 Connection对象 9.3 Command对象 9.4 RecordSet对象 9.5 ADO对象综合应用,9.1 ADO概述,Browser/Server(浏览器/服务器)已经成为MIS(Management InFormation System 管理信息系统)的主要模式。在MIS系统中,对数据库的操作占有非常重要的地位,ASP对数据库的访问可以通过ADO模式来实现。不过,ADO并不与数据资源直接通信,而是通过称为OLE DB(对象链接与嵌入式数据库)的中间界面。 目前有两种使用ADO产生数据库连接的方法。一方面,可以使用面向ODBC驱动器的OLE DB驱动程序产生一个连接,这种连接与任何有ODBC驱动器的数据库(即基本上是市场上所有的数据库)兼容。另一方面,可以使用原始OLE DB驱动程序产生一个连接。,本章首页,9.1 ADO概述,9.1.2 ODBC概述 ODBC(Open Database Connectivity,开放式数据库连接)是数据库服务器的一个标准协议,它向访问网络数据库的应用程序提供一种通用的语言。 每个ODBC数据源都被指定一个名字,即DSN(Data Source Name)。ODBC数据源分为: 机器数据源把信息存储在登录信息中,因而只能被该计算机访问。机器数据源包括系统数据源和用户数据源。 文件数据源把信息存储在后缀名为.dsn的文件中,如果该文件存放在网络共享的驱动器中,就可以被所有安装了相同驱动程序的用户共享。,9.1 ADO概述,9.1.2 创建数据源 (1)打开系统的控制面板,选择“管理工具”,双击“ODBC 数据源”的图标,出现“ODBC数据源管理器”的窗口,选择“系统DSN”选项卡。 (2)单击“添加”按钮,出现“创建数据源”窗口。 (3)为该数据源指定适当的驱动程序,这里选择“SQL Server”。单击“完成”按钮。 (4)输入SQL Server服务器的用户登录信息及验证信息后,单击“下一步”按钮。 (5)指定默认数据库等后,单击“下一步”按钮。 (6)指定日志文件等选项后,单击“完成”按钮。 (7)单击“测试数据源”按钮,如果窗口中显示“测试成功”,表示该数据源可以使用。,9.1 ADO概述,9.1.3 ADO的七个对象 (1)Connection对象用于创建ASP脚本和指定数据库的连接。 (2)Command对象负责对数据库提供请求,也就是传递指定的SQL命令。 (3)Parameter对象负责传递Command对象所需要的SQL命令参数。 (4)RecordSet对象负责浏览与操作从数据库中取得的数据。 (5)Field表示指定RecordSet对象的数据字段。 (6)Property对象表示ADO的各项对象属性值。 (7)Error对象负责记录连接过程中所有发生的错误信息。,9.1 ADO概述,9.1.3 ADO的四个数据集合 (1)Fields数据集合。 (2)Properties数据集合。 (3)Parameters数据集合。 (4)Errors数据集合。,9.1 ADO概述,9.1.3 ADO对象与数据集合之间的关系,9.2 Connection对象,Connection对象负责与数据库实际的连接动作,其他的对象都必须依赖于Connection对象的连接才能发挥其特有的功能。 在成功安装ASP与Web服务器后,就可以使用ASP中Server对象的CreateObject方法来创建Connection对象,语法如下: Set Conn = Server.CreateObject (“ADODB.Connection“),9.2 Connection对象,9.2.1 Connection对象的方法 1Open方法 Connection对象的Open方法负责创建与数据源的连接,语法如下: connection.Open ConnectionString, UserID, Password 在对打开的Connection对象的操作结束后,可使用Close方法释放所有关联的系统资源。关闭对象并非将它从内存中删除;可以更改它的属性设置并在以后再次使用Open方法时打开它。要将对象完全从内存中删除,可将对象变量设置为Nothing。,9.2 Connection对象,1)通过ODBC连接。在利用ODBC创建连接时,由于设置不同,Connection参数的设置也有所不同: 对于在“ODBC数据源控制面板”中设置过的数据源,该参数设置比较简单,可以使用“DSN=数据源名称”的格式。 对于没有在“ODBC数据源控制面板”中设置过的,可以采用指定ODBC驱动程序设置(称为ODBC DSN LESS),在Windows系统目录下的Odbc.ini文件中,可以找到相关的信息。,9.2 Connection对象,(2)通过OLE DB连接。 strProvider = “Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; “ Provider指定用于连接的提供者的名称,SQL Server使用sqloledb。 Data Source指定数据库服务器的名称。 Initial Catalog指定要连接的数据库名称 User表示登录SQL Server服务器的用户帐号。 Password表示登录SQL Server服务器的用户密码。,9.2 Connection对象,2Execute方法 对于没有返回结果的命令格式: connection.Execute CommandText, RecordsAffected, Options 对于有返回结果的命令格式: Set recordSet = connection.Execute (CommandText, RecordsAffected, Options) 该方法返回一个RecordSet对象。 可以执行标准的SQL语句命令,如Select(查询提取数据)、Insert(插入数据)、Delete(删除数据)、Update(更新数据)、Create Table(创建数据表)以及Drop Table(删除数据表)等操作。,9.2 Connection对象,3Close方法 使用Close方法可关闭Connection对象或RecordSet对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在此后再次打开。要将对象从内存中完全删除,可将对象变量设置为Nothing。语法如下: Connection.close,9.2 Connection对象,4BeginTrans,CommitTrans和RollbackTrans 这三种方法都和Connection对象的事务管理有关。 其中BeginTrans表示开始新事务;CommitTrans表示保存任何更改并结束当前事务,它也可能启动新事务;RollbackTrans表示取消当前事务中所作的任何更改并结束事务,它也可能启动新事务。其语法如下: level = connetion.BeginTrans() connection.BeginTrans connection.CommitTrans connection.RollbackTrans,9.2 Connection对象,9.2.2 Connection对象的属性 1CommandTimeout设置Connection对象的Open方法与数据库连接时的最长等待时间, CommandTimeout属性是设置Connection对象的Execute方法运行的最长执行时间。 2ConnectionString属性:用来设置Connection对象的数据库连接信息,包括Provider参数、Data Source参数、User ID参数、Password参数及File Name参数等。 3Provider属性:用来取得或设置Connection对象的提供者(内定数据库管理程序的名称),默认值为MSDASQL(Microsoft OLE Db Provider For ODBC),负责管理所有以ODBC连接的数据库。,9.2 Connection对象,4Mode属性 该属性用来设置修改数据库的权限。语法如下: Connection.Mode = ModeValue 5其他属性 DefaultDatabase属性、Attributes属性、 CursorLocation属性、IsolationLevel属性、 State属性、Version属性。,9.2 Connection对象,9.2.3 Connection对象的数据集合 Connection对象提供Errors和Properties两种数据集合。前者表示Connection对象运行时最近一次的错误或警告信息,后者表示Connection对象所定义的相关属性。,9.3 Command对象,Command对象是ADO中专门负责对数据库执行命令和操作的对象,使用Command对象可以查询数据库并返回RecordSet对象中的记录,以便执行大量操作或修改数据库结构。使用该对象不仅能够对一般的数据库信息进行操作,还因为该对象可以有输入、输出参数,从而可以完成对数据库存储过程的调用。,9.3 Command对象,9.3.1 Command对象的属性 1ActiveConnection属性:用来设定该Command对象操作由哪一个Connection对象指定连接的数据库。该属性的语法格式: Command. ActiveConnection=ActiveConnectionValue 2CommandText属性:表示程序所要对数据库下达的命令。Command.CommandText=CommandTextValue 3CommandType属性:指示Command对象的类型。 Command.CommandType=CommandTypeValue 或 CommandTypeValue=Command. CommandType,9.3 Command对象,4CommandTimeout属性:设置Command对象Execute方法的最长执行时间, Command. CommandTimeout = Seconds 5State属性:用来取得Command对象的状态 Command. State = StateValue 6Prepared属性:指示执行前是否保存命令的编译版本。 Command. Prepared = Boolan 或 Boolan = Command. Prepared,9.3 Command对象,9.3.2 Command对象的方法 1CreateParamete方法 该方法可以创建新的Parameter对象。 Set parameter=command.CreateParameter (Name, Type, Direction, Size, Value) 其中:参数Name代表Parameter对象名称;Type是长整型值,用于指定Parameter对象数据类型;Direction是长整型值,用于指示Parameter所标明的是输入参数、输出参数还是既是输出又是输入参数,或该参数是否为存储过程返回的值;Size是长整型值,用于指定参数值最大长度(以字符或字节数为单位);Value用于指定Parameter对象的值。,9.3 Command对象,2Execute方法 负责运行指定的SQL命令或存储过程。语法如下: 有返回结果的语法: Set recordSet= command.Execute (RecordsAffected,Parameters,Options) 没有返回的的语法: command.Execute RecordsAffected, Param