第12章 利用ADO实现网页与数据库的连接 通过本章学习,应该掌握以下内容: ADO各种对象和集合 利用ADO存取组件进行数据库连接
12.1 ADO概述 ASP提供了强大的数据库支持,ASP对数据库的访问可以通过ADO模式来实现。ADO给开发人员提供了一种快捷、简单、高效的数据库访问方法,ADO可以包含在脚本中来产生对数据库的连接,并从数据库表中读取记录,形成实际要使用的对象集合。而且,对数据资源(如数据库),ADO提供了应用程序一级的界面。不过,ADO并不与数据资源直接通信,而是通过称为OLE DB(对象链接与嵌入式数据库)的中间界面。
12.1.1 ADO对象 ADO对象主要包含Connection对象、RecordSet对象、Command对象、Parameter对象、Field对象、Property对象和Error对象等七个对象。 12.1.2 ADO数据集合 ADO对象包含Fields数据集合、Properties数据集合、Parameters数据集合和Error数据集合等四个数据集合。
12.1.3 ADO对象与数据集合之间的关系 对象和数据集合的关系图
12.2 Connection对象 12.2.1 Connection对象的方法 1.Open方法 Connection对象的Open方法用来初始化一个连接,只有使用了Connection对象的Open方法后,Connection对象才会真正存在,然后才能发命令对数据源产生作用。通常在使用Open方法时有如下两种途径: (1)直接将连接字符串传给Open方法。 (2)利用它的ConnectionString属性
(1)直接将连接字符串传给Open方法。 <% set conn=Server.CreateObject “ADODB.Connection”) conn.Open“DSN=STUDENT.UID=uid.PWD=pwd” %>
( 1)利用它的ConnectionString属性 <% conn.Connectionstring=“DSN=STUDENT;UID= uid;PWD=pwd” conn.Open %> 在上面的方法中,Open所带的参数是可选的。用户可以先建立Connectionsring,然后再使用Open方法。
2.Close方法 当调用了Close方法后,系统就停止了同数据源之间的连接,并且释放与连接有关的系统资源。当调用此方法时,不只是关闭Connection对象,而且还关闭了其他正在使用该Connection对象的ADO对象。不过Close方法只是释放与其相关的系统资源,Connection对象本身并没有释放。因此,一个关闭的Connection对象还可以接着用Open方法打开,而不用再次创建。
3.BeginTrans方法 4.CommitTrans方法 5.Execute方法 6.RollbackTrans方法 RollbackTrans方法和CommitTrans方法相反,它是取消此次事务以来对数据源所做的所有操作,并不写入数据源。
12.2.2 Connection对象的属性 Connection对象的属性包括Attributes、CommandTimeout、ConnectionString、ConnectionTimeout、CursorLocation、DefaultDatabase、IsolationLevel、Mode、Provider、State、Version等。
1.CommandTimeout属性与 ConnectionTimeout属性 ConnectionTimeout属性是设置Connection对象的Open方法与数据库连接时的最长等待时间,其属性值为一个长整形变量,缺省值为12秒。如果设为0,则系统会一直等到连接成功为止。 CommandTimeout属性是设置Connection对象的Execute方法运行的最长执行时间,其属性值为一个长整形变量,默认值为30秒。如果将CommandTimeout的值设为0,则系统会一直等到运行结束为止。
2.ConnectionString属性 ConnectionString属性是用来设置Connection对象的数据库连接信息,包括:Provider参数、Data Source参数、User ID参数、Password参数及File Name参数等。 其中Provider参数表示与数据库连接时缺省的Provider名称;Data Source参数表示ODBC中数据源的名称(DSN);User ID参数和Password参数表示连接数据库的用户帐号和密码;File Name参数表示指定文件名称。这些参数之间用“;”分隔。
3.Provider属性 该属性可以用来取得或设置Connection对象的提供者(内定数据库管理程序的名称),默认值为MSDASQL(Microsoft OLE Db Provider For ODBC),它负责管理所有以ODBC连接的数据库。语法如下: Connection.Provider = ProviderName 4. Mode属性 该属性是用来设置修改数据库的权限,语法如下: Connection.Mode = ModeValue
5.其它属性 DefaultDatabase属性是用来设置Connection对象缺省数据库名称,语法为: Connection.DefaultDatabase = "DataBaseName" Attributes属性是ADO对象共有的一个属性,它定义了对象的一个或多个特点。Connection对象的Attributes属性用来设置Connection对象运行事务的控制方法,如adXactCommitRetaining与adXactAbortRetaining等值,语法为: Connection.Attributes = AttributesValue
CursorLocation属性是用来设置指针处理的位置,语法为: Connection. CursorLocation = CursorLocationValue IsolationLevel属性是用来设置Connection对象运行事务的时机,语法为: Connection. IsolationLevel = IsolationLevelValue State属性是用来取得Connection对象的状态,包括adStateClosed和adStateOpen两个值,语法为: Connection. State = StateValue Version属性可以取得ADO版本信息,语法为: String = Connection.Version
12.2.3 Connection对象的数据集合 Connection对象提供Errors、Properties两种数据集合。前者表示Connection对象运行时最近一次的错误或警告信息,后者表示Connection对象所定义的相关属性。
12.3 Recordset对象 12.3.1 Recordset对象的方法 1.打开、关闭和复制Recordset对象的方法 (1)Open方法 Open方法是用来打开一个给予ActiveConnection和Source属性的Recordset。 (2)Close方法 Close方法用于关闭Recordset对象并释放相关资源。 (3)Clone方法 Clone方法用来创建一个Recordset对象的完全拷贝。
2.刷新、移动数据的方法 BOF属性:当前游标指到Recordset的第一笔。 EOF属性:当前游标指到Recordset的最后一笔。 Move方法:移动游标到Recordset中的某一个记录。 AbsolutePosition属性:当前游标所在Recordset中的位置。 Bookmark (书签) 属性:在Recordset中的一条记录做一个标记。
3.编辑修改数据的方法 (1)addNew方法 addNew方法用来向数据库中增加新纪录。 (2)Delete方法 Delete方法用来删除当前记录。 (3)Update方法 Update方法表示将对Recordset对象中的当前记录的任何修改保存在数据源中。 (4)CancelUpdate方法 CancelUpdate方法用来取消在调用Update方法前所作的一切修改。 (5)UpdateBatch方法 该方法将取消对Recordset的修改。
12.3.2 Recordset对象的属性 1.MarshalOptions属性 2.AbsolutePage属性 该属性指示要被调度返回服务器的记录。 2.AbsolutePage属性 该属性指定当前记录所在的页。 3.AbsolutePosition属性 该属性指定Recordset对象当前记录的序号位置。
4.Bookmark属性 5.CacheSize 属性 该属性返回唯一标识Recordset对象中当前记录的书签,或者将Reeordset对象的当前记录设置为由有效书签所标识的记录。 5.CacheSize 属性 该属性指示缓存在本地内存中的Recordset对象的记录数。
6.CursorType 属性 7.Filter属性 8.Index属性 该属性指示在Recordset对象中使用的游标类型。
9.LockType属性 10.MaxRecords属性 11.PageCount属性 该属性指示编辑过程中对记录使用的锁定类型。 该属性指示通过查询返回Recordset记录的最大数目。 11.PageCount属性 该属性指示Recordset对象包含的数据页数。
12.PageSize属性 13.RecordCount属性 14.Sort属性 该属性指示Recordset中一页所包含的记录数。
15. Source属性 16.State属性 该属性指示Recordset对象中数据的来源 。 该属性对所有可应用对象,说明其对象状态是打开或是关闭。
12.3.3 RecordSet对象的数据集合 RecordSet对象的数据集合包括Field数据集合、Properties数据集合。由于Fields数据集合中包括RecordSet对象的所有Field数据字段对象;Properties数据集合包含RecordSet对象所有属性。关于数据集合的内容将在后面介绍。
12.4 Command对象 12.4.1 Command对象的方法 1.CreateParameter方法 CreateParameter方法使用指定属性创建新的Parameter对象,并在执行之前加到Command对象的Parameter集合中。Parameter对象表示传给SQL语句或存储进程的一个数。
2.Execute方法 该方法执行在CommandText属性中指定的查询、SQL语句或存储过程。其方法与Connection的Execute方法类似。
12.4.2 Command的属性 1.ActiveConnection属性 2.CommandText属性 该属性指示指定的Command或Recordset对象当前所属的Connection对象。 2.CommandText属性 该属性包含要根据提供者发送的命令的文本。
3.CommandTimeout属性 4.CommandType属性 5.Prepared属性 该属性指示在终止尝试和产生错误之前执行命令期间需等待的时间。 4.CommandType属性 该属性指示Command对象的类型。 5.Prepared属性 该属性可以指示执行前是否保存命令的编译版本。
12.5 Fields集合和Field对象 12.5.1 Fields集合的方法及属性 1.Append方法 2.Item方法 Append方法将对象追加到集合中。如果集合是Fields,可以先创建新的Field对象然后再将其追加到集合中。 2.Item方法 Item方法根据名称或序号返回集合的特定成员。
3.Delete方法 4.Refresh方法 5.Fields集合的属性 Delete方法表示从Fields集合中删除对象。 该方法更新集合中的对象以便反映来自提供者的可用对象和特定于提供者的对象。 5.Fields集合的属性 Fields集合的属性只有Count属性,它指示集合中对象的数目。
12.5.2 Field对象的方法 1.AppendChunk方法 2.GetChunk方法 该方法将数据追加到大型文本、二进制数据Field或Parameter对象。 2.GetChunk方法 该方法返回大型文本或二进制数据Field对象的全部或部分内容。
12.5.3 Field对象的属性 1.AppendChunk方法 2.DefinedSize属性 3.Name属性 该属性指示字段的值的实际长度。 2.DefinedSize属性 该属性指示Field对象所定义的大小。 3.Name属性 Name属性指示对象的名称。
4.NumericScale属性 5.OriginalValue属性 6.Precision属性 该属性指出Parameter或Field对象中数字值的范围。 5.OriginalValue属性 该属性指示发生任何更改前已在记录中存在的Field的值。 6.Precision属性 该属性指示在Parameter对象中数字值或数字Field对象的精度。
7.UnderlyingValue属性 8.Value属性 该属性指示数据库中Field对象的当前值。 Value属性指示赋给Field、Parameter或Property对象的值。
12.6 Properties数据集合和Property对象 Properties集合是包含特定对象实例的所有 Property 对象,有时候也称为Properties数据集合对象。包括Count属性、Refresh方法、Item方法等。 Count属性用来取得Properties集合中包含的Property对象个数。 Refresh方法用来重新取得Properties数据集合中所有的Property对象个数。 Item方法用来取得Properties集合中的Property对象。
12.6.2 Property对象 Property对象主要是用来记录相应ADO对象的每一项属性值,包括了Name属性、Value属性、Type属性、Attributes属性等。 Name属性表示对象属性的名称。 Value属性表示对象的属性值。 Type属性表示对象属性的数据类型。 Attributes属性表示对象的特性。
12.7 Parameters集合和Parameter对象 1.Append方法 该方法将对象追加到集合中。如果集合是Fields,可以先创建新的Filed对象然后再将其追加到集合中。 2.Delete方法 该方法从Parameters集合中删除对象。
12.7.2 Parameter集合的属性 12.7.3 Parameter对象的方法 Count属性;它指示集合中对象的数目。 Item属性:它用来返回集合中某一个参数。它有一个索引值,它即可以是所要的参数在Parameters集合中的参数值,也可以是参数的名字。 12.7.3 Parameter对象的方法 AppendChunk方法 该方法将数据追加到大型文本、二进制数据Field或Parameter对象。
12.7.4 Parameter对象的属性 1.Direction属性 2.Name属性 3.NumericScale属性 该属性指出Parameter或Held对象中数字值的范围。
4.Precision属性 5.Size属性 6.Value属性 该属性指示在Parameter对象中数字值或数字Field对象的精度。 该属性指示赋给Field、Parameter或Property对象的值。
12.8 Errors集合和Error对象 12.8.1 Errors数据集合 12.8.2 Error对象 Errors数据集合,也称Errors数据集合对象,包含在响应涉及提供者的单个失败时产生的所有Error对象。包括Count属性、Clear方法、Item方法。 12.8.2 Error对象 Error对象负责记录存储一个系统运行时发生的错误或警告。Error对象提供了Description属性、Number属性、Source属性、NativeError属性、SQLState属性、HelpContext属性、HelpFile属性等。
12.9 利用ADO实现新闻发布系统 12.9.1 数据库的建立 12.9.2 程序源代码
本章小结 ADO给开发人员提供了一种快捷、简单、高效的数据库访问方法,ASP对数据库的访问可以通过ADO模式来实现的。本章介绍了ADO的几个主要的对象,以及这些对象的属性、方法、数据集合等内容。学完本章,读者应能够进行如下操作:连接数据库并进行查询;处理查询结果;改善查询;设置或返回数据记录;处理系统错误或警告等。