1 / 56

第 11 章 ADO 对象

第 11 章 ADO 对象. 11.1 ADO 概述 11.2 Connection 对象 11.3 Command 对象 11.4 RecordSet 对象 11.5 Fields 数据集合和 Field 对象 11.6 Properties 数据集合和 Property 对象 11.7 Parameters 数据集合与 Parameter 对象 11.8 Errors 数据集合和 Error 对象. 本章首页. 11.1 ADO 概述.

Download Presentation

第 11 章 ADO 对象

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第11章 ADO对象 • 11.1 ADO概述 • 11.2 Connection对象 • 11.3 Command对象 • 11.4 RecordSet对象 • 11.5 Fields数据集合和Field对象 • 11.6 Properties数据集合和Property对象 • 11.7 Parameters数据集合与Parameter对象 • 11.8 Errors数据集合和Error对象

  2. 本章首页 11.1 ADO概述 • Browser/Server(浏览器/服务器)已经成为MIS(Management InFormation System 管理信息系统)的主要模式。在MIS系统中,对数据库的操作占有非常重要的地位,ASP对数据库的访问可以通过ADO模式来实现。不过,ADO并不与数据资源直接通信,而是通过称为OLE DB(对象链接与嵌入式数据库)的中间界面。 • 目前有两种使用ADO产生数据库连接的方法。一方面,可以使用面向ODBC驱动器的OLE DB驱动程序产生一个连接,这种连接与任何有ODBC驱动器的数据库(即基本上是市场上所有的数据库)兼容。另一方面,可以使用原始OLE DB驱动程序产生一个连接。

  3. 11.1 ADO概述 • 11.1.1 ADO的七个对象 • (1)Connection对象用于创建ASP脚本和指定数据库的连接。 • (2)Command对象负责对数据库提供请求,也就是传递指定的SQL命令。 • (3)Parameter对象负责传递Command对象所需要的SQL命令参数。 • (4)RecordSet对象负责浏览与操作从数据库中取得的数据。 • (5)Field表示指定RecordSet对象的数据字段。 • (6)Property对象表示ADO的各项对象属性值。 • (7)Error对象负责记录连接过程中所有发生的错误信息。

  4. 11.1 ADO概述 • 11.1.2 ADO的四个数据集合 • (1)Fields数据集合。 • (2)Properties数据集合。 • (3)Parameters数据集合。 • (4)Errors数据集合。

  5. 11.1 ADO概述 • 11.1.3 ADO对象与数据集合之间的关系

  6. 11.2 Connection对象 • Connection对象负责与数据库实际的连接动作,其他的对象都必须依赖于Connection对象的连接才能发挥其特有的功能。 • 在成功安装ASP与Web服务器后,就可以使用ASP中Server对象的CreateObject方法来创建Connection对象,语法如下: • Set Conn = Server.CreateObject • ("ADODB.Connection")

  7. 11.2 Connection对象 • 11.2.1 Connection对象的方法 • 1.Open方法 • Connection对象的Open方法负责创建与数据源的连接,语法如下: • connection.Open ConnectionString, UserID, Password • 在对打开的Connection对象的操作结束后,可使用Close方法释放所有关联的系统资源。关闭对象并非将它从内存中删除;可以更改它的属性设置并在以后再次使用Open方法时打开它。要将对象完全从内存中删除,可将对象变量设置为Nothing。

  8. 本章首页 11.2 Connection对象 • 1)通过ODBC连接。在利用ODBC创建连接时,由于设置不同,Connection参数的设置也有所不同: • 对于在“ODBC数据源控制面板”中设置过的数据源,该参数设置比较简单,可以使用“DSN=数据源名称”的格式。 • 对于没有在“ODBC数据源控制面板”中设置过的,可以采用指定ODBC驱动程序设置(称为ODBC DSN LESS),在Windows系统目录下的Odbc.ini文件中,可以找到相关的信息。

  9. 11.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服务器的用户密码。

  10. 11.2 Connection对象 • 2.Execute方法 • 对于没有返回结果的命令格式: • connection.Execute CommandText, RecordsAffected, Options • 对于有返回结果的命令格式: • Set recordSet = connection.Execute (CommandText, RecordsAffected, Options) • 该方法返回一个RecordSet对象。 • 可以执行标准的SQL语句命令,如Select(查询提取数据)、Insert(插入数据)、Delete(删除数据)、Update(更新数据)、Create Table(创建数据表)以及Drop Table(删除数据表)等操作。

  11. 11.2 Connection对象 • 3.Close方法 • 使用Close方法可关闭Connection对象或RecordSet对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在此后再次打开。要将对象从内存中完全删除,可将对象变量设置为Nothing。语法如下: • Connection.close

  12. 11.2 Connection对象 • 4.BeginTrans,CommitTrans和RollbackTrans • 这三种方法都和Connection对象的事务管理有关。 • 其中BeginTrans表示开始新事务;CommitTrans表示保存任何更改并结束当前事务,它也可能启动新事务;RollbackTrans表示取消当前事务中所作的任何更改并结束事务,它也可能启动新事务。其语法如下: • level = connetion.BeginTrans() • connection.BeginTrans • connection.CommitTrans • connection.RollbackTrans

  13. 11.2 Connection对象 • 11.2.2 Connection对象的属性 • 1.CommandTimeout设置Connection对象的Open方法与数据库连接时的最长等待时间, • CommandTimeout属性是设置Connection对象的Execute方法运行的最长执行时间。 • 2.ConnectionString属性:用来设置Connection对象的数据库连接信息,包括Provider参数、Data Source参数、User ID参数、Password参数及File Name参数等。 • 3.Provider属性:用来取得或设置Connection对象的提供者(内定数据库管理程序的名称),默认值为MSDASQL(Microsoft OLE Db Provider For ODBC),负责管理所有以ODBC连接的数据库。

  14. 11.2 Connection对象 • 4.Mode属性 • 该属性用来设置修改数据库的权限。语法如下: • Connection.Mode = ModeValue • 5.其他属性 • DefaultDatabase属性、Attributes属性、 • CursorLocation属性、IsolationLevel属性、 • State属性、Version属性。

  15. 11.2 Connection对象 • 11.2.3 Connection对象的数据集合 • Connection对象提供Errors和Properties两种数据集合。前者表示Connection对象运行时最近一次的错误或警告信息,后者表示Connection对象所定义的相关属性。

  16. 11.3 Command对象 • Command对象是ADO中专门负责对数据库执行命令和操作的对象,使用Command对象可以查询数据库并返回RecordSet对象中的记录,以便执行大量操作或修改数据库结构。使用该对象不仅能够对一般的数据库信息进行操作,还因为该对象可以有输入、输出参数,从而可以完成对数据库存储过程的调用。

  17. 11.3 Command对象 • 11.3.1 Command对象的属性 • 1.ActiveConnection属性:用来设定该Command对象操作由哪一个Connection对象指定连接的数据库。该属性的语法格式: • Command. ActiveConnection=ActiveConnectionValue • 2.CommandText属性:表示程序所要对数据库下达的命令。Command.CommandText=CommandTextValue • 3.CommandType属性:指示Command对象的类型。 • Command.CommandType=CommandTypeValue • 或 • CommandTypeValue=Command. CommandType

  18. 本章首页 11.3 Command对象 • 4.CommandTimeout属性:设置Command对象Execute方法的最长执行时间, • Command. CommandTimeout = Seconds • 5.State属性:用来取得Command对象的状态 • Command. State = StateValue • 6.Prepared属性:指示执行前是否保存命令的编译版本。 • Command. Prepared = Boolan • 或 • Boolan = Command. Prepared

  19. 11.3 Command对象 • 11.3.2 Command对象的方法 • 1.CreateParamete方法 • 该方法可以创建新的Parameter对象。 • Set parameter=command.CreateParameter • (Name, Type, Direction, Size, Value) • 其中:参数Name代表Parameter对象名称;Type是长整型值,用于指定Parameter对象数据类型;Direction是长整型值,用于指示Parameter所标明的是输入参数、输出参数还是既是输出又是输入参数,或该参数是否为存储过程返回的值;Size是长整型值,用于指定参数值最大长度(以字符或字节数为单位);Value用于指定Parameter对象的值。

  20. 11.3 Command对象 • 2.Execute方法 • 负责运行指定的SQL命令或存储过程。语法如下: • 有返回结果的语法: • Set recordSet= command.Execute • (RecordsAffected,Parameters,Options) • 没有返回的的语法: • command.Execute RecordsAffected, • Parameters, Options • RecordsAffected为长整型,其值是操作所影响的记录数,仅应用于查询或存储过程操作;Parameters是用SQL语句传送的参数值(用该参数传送时输出参数将不返回正确值);Options为长整型值,其数值是一个CommandText的属性值。

  21. 11.4 RecordSet对象 • RecordSet对象表示的是来自数据表或命令执行结果的记录集。该对象负责浏览和操作从数据库中取出的数据,该对象就像一个二维数组,数组的每一列表示数据库中的一个数据列,而同时每个数据行包含多个字段,每个数据字段就表示一个Field对象。

  22. 11.4 RecordSet对象 • 11.4.1 RecordSet对象的方法 • 使用Open方法可以打开代表数据表、查询结果或者以前保存的RecordSet中记录的游标(指向数据库数据的位置,即指针),也就是说可以与数据库建立连接。语法如下: • recordSet.Open Source, ActiveConnection, • CursorType, LockType, Options • 其中:Source用来指定数据源,可以是Command对象名、SQL语句、表名、存储过程调用名;ActiveConnection用来指定与数据库的连接信息,可以是Connection对象名或字符串,包含ConnectionString参数;

  23. 常量 参数值 说明 本章首页 AdOpenForwardOnly 0 使用前向类型游标,只能在记录集中向前移动(默认值) AdOpenKeySet 1 使用键集类型游标,可以在记录集中向前或向后移动。如果其他用户删除或改变了某条记录,记录集中将反映这个变化。但是,如果其他用户添加了一条新记录,新记录将不会出现在记录集中 AdOpenDynamic 2 使用动态类型游标,可以在记录集中向前或向后移动。对于其他用户造成的任何记录的变化都将在记录集中有所反映 AdOpenStatic 3 使用静态类型游标,可以在记录集中向前或向后移动。不会对其他用户造成的任何记录的变化有所反映 11.4 RecordSet对象 • CursorType:

  24. 常量 参数值 说明 AdLockReadOnly 0 只读。不能改变数据(默认值)。 AdLockPessimistic 1 保守式锁定(逐个)。指定在编辑一个记录时立即锁定它。 AdLockOptimistic 2 开放式锁定(逐个)。数据库使用开放式锁定,只在调用Update方法时才锁定记录 AdLockBatchOptimistic 3 开放式批更新。用于批更新模式。 11.4 RecordSet对象 • LockType:

  25. 常量 参数值 说明 AdCmdUnknown -1 指示Source参数中的命令类型为未知 AdCmdText 1 指示被执行的字符串包含一个命令文本 AdCmdTable 2 指示被执行的字符串包含一个表的名字 AdCmdStoredProc 3 指示被执行的字符串包含一个存储过程名 11.4 RecordSet对象 • Options:

  26. 11.4 RecordSet对象 • 2.Close方法 • Close方法用来关闭所指定的RecordSet对象, • 语法如下: • RecordSet.Close

  27. 本章首页 11.4 RecordSet对象 • 3.MoveFirst,MoveLast,MoveNext,MovePrevious,Move方法 • 这些方法都是用来移动记录指针的,通过使用这些方法可以根据实际情况方便地将记录指针移动到所要的位置。 • MoveFirst:将指针移动到RecordSet对象的第一条记录。 • MoveLast:将指针移动到最后一条数据记录。 • MoveNext:将指针移动到下一条数据记录。 • MovePrevious:将指针移动到上一条数据记录。 • Move:将指针移动到指定位置。 语法如下: RecordSet.MoveFirst RecordSet.MoveLast RecordSet.MoveNext RecordSet.MovePrevious RecordSet.Move NumRecords,Start

  28. 11.4 RecordSet对象 • 4.Update,CancelUpdate,CancelBatch,UpdateBatch • 这些方法是用来更新或取消更新的。 • Update:用于将RecordSet对象中当前记录的修改保存到数据库中。 • CancelUpdate:取消在调用Update方法前所做的修改。 • UpdateBatch:进行批次模式的更新数据操作。 • CancelBatch:允许取消批次模式的更新数据操作。 语法如下: RecordSet.Update RecordSet.CancelUpdate RecordSet.CancelBatch RecordSet.UpdateBatch Affectrecords

  29. 11.4 RecordSet对象 • 5.AddNew,Delete方法 • AddNew方法用来向数据库中插入一条新记录;Delete方法用于从数据库中删除指定的记录。语法: • RecordSet.AddNew • RecordSet.Delete

  30. 11.4 RecordSet对象 • 6.NextRecordSet方法 • NextRecordSet方法允许清除当前RecordSet对象,并通过提前执行命令序列返回下一个记录集,通常应用于多重数据查询。语法如下: • Set recordSet2 = recordSet1. • NextRecordSet(RecordsAffected) • 参数recordSet2是返回的RecordSet对象。在语法模型中,recordSet1和recordSet2可以是相同的RecordSet对象,也可以使用不同的对象。 • 参数RecordsAffected为长整型变量,是数据库服务器返回的每次操作所得到的记录数目。

  31. 11.4 RecordSet对象 • 7.Requery方法 • Requery方法用于重新运行第一次创建的RecordSet命令或声明,所有已存在RecordSet对象内的数据都会在执行Requery方法后被重新更新。调用该方法等于相继调用Close和Open方法。语法如下: • recordSet.Requery Options • Options指定影响该操作选项的位屏蔽参数。

  32. 11.4 RecordSet对象 • 8.Clone方法 • Clone方法可以创建出多个RecordSet对象副本,这些完全相同的RecordSet对象是共享数据服务器的内部快照数据,也就是说内容相同。语法如下: • Set NewRecordSet=RecordSet.clone(LockType) • 其中LockType用于指定原始RecordSet的锁定类型或只读RecordSet。

  33. 11.4 RecordSet对象 • 9.GetRows方法 • GetRows方法可以取得多条记录。 • 语法如下: • Array=recordSet.GetRows(Rows,Start,Fields) • Rows:用于指定要检索的记录数。 • Start:指定被取回到数组的数据记录的起始行,默认值为当前记录。 • Fields用于指定被取回到数组的数据字段,可以是单一的字段名称、数字索引或多个字段构成的数组,默认值为取回所有字段的数据。

  34. 11.4 RecordSet对象 本章首页 • 10.其他方法 • 其他方法,如Resync用来设置与数据库服务器同步的更新模式;Supports方法可以用来判别RecordSet对象支持的功能。语法如下: • RecordSet.Resync AffectRecords • Boolean value= RecordSet.Supports • (CursorOptions) • Resync方法的参数AffectRecords表示进行数据更新的条件;Supports方法的参数CursorOptions表示可支持的功能。

  35. 11.4 RecordSet对象 • 11.4.2 RecordSet对象的属性 • 1.ActiveConnection属性:用于指定Connection对象名称或是一串包含“数据库连接信息(ConnectString)”的字符串,方便RecordSet对象完成数据库连接的前置动作。语法如下: • RecordSet. ActiveConnection=ActiveConnectionValue • 2.Source属性 • Source属性用于设置或返回一个字符串,指定记录集中数据的来源。包含存储过程名、表名、SQL语句或为RecordSet提供记录集合的Command对象。语法如下:RecordSet. Source = Source

  36. 11.4 RecordSet对象 • 3.CursorLocation,Bookmark属性 • CursorLocation属性用来设置指针处理的位置,语法:RecordSet. CursorLocation • =CursorLocationType • Bookmark属性可以记录当前数据指针位置。当创建一个允许使用Bookmark属性的RecordSet对象时,可以利用Bookmark快速定位记录。步骤如下: • 先移动到那条记录,利用Bookmark属性设置一个名称,即书签记号的名称,当要回到该条记录时,将Bookmark属性重新设为所设定书签记号的名称即可。

  37. 11.4 RecordSet对象 • 4.CursorType属性 • CursorType属性指示在RecordSet对象中使用的游标类型,其取值见表11-6。语法如下: • RecordSet. CurSorType= • CurSorTypeValue • 5.LockType属性 • LockType属性可指定打开RecordSet对象时服务器应该使用的锁定类型,读取该属性可返回在打开的RecordSet对象上正在使用的锁定类型。可以设置或返回表11-7的值。语法如下: • RecordSet. LockType = LockTypeValue 本章首页

  38. 本章首页 11.4 RecordSet对象 • 6.RecordCount,MaxRecords,CacheSize属性 • RecordCount属性可确定RecordSet 对象中记录的数目,当ADO无法确定记录数时,或者DBMS或游标类型不支持RecordCount,则该属性返回-1。语法: • LongInt = RecordSet. RecordCount • 前向游标打开的记录集不能使用RecordCount属性。 • 7.BOF,EOF属性 • BOF(Begin Of File)属性用来判断当前记录位置是否位于RecordSet对象的第一个记录之前。EOF(End Of File)用来判断当前记录位置是否位于RecordSet对象的最后一个记录之后。

  39. 本章首页 11.4 RecordSet对象 • 8.PageSize,PageCount,AbsolutePage, • AbsolutePosition属性 • PageSize属性用来设置RecordSet对象内每一个逻辑页的记录条数。 • PageCount用来返回RecordSet对象的逻辑页数。 • AbsolutePage属性用来取得当前数据游标在RecordSet对象中的绝对页数。 • AbsolutePosition属性用来取得当前游标在RecordSet对象记录的绝对位置。

  40. 本章首页 11.4 RecordSet对象 • 9.EditMode属性 • EditMode属性用于指示当前记录的编辑状态。语法如下: • Int = RecordSet. EditMode • 10.Filter属性 • Filter属性用来控制RecordSet对象的数据显示方式,即指定筛选条件。语法如下: • RecordSet. Filter = FilterVariant • 或 • FilterVariant = RecordSet. Filter

  41. 本章首页 11.4 RecordSet对象 • 11.State,Status属性 • State属性与Connection对象的State属性类似,不同之处在于RecordSet对象的State属性是用来取得RecordSet对象的状态,而Connection对象的State属性是取得Connection对象的状态。语法如下: • RecordSet. State = StateValue • Status属性用来表示当前记录的处理状态。使用Status属性可以查看与批量更新或其他大量操作时的RecordSet对象的当前状态。语法如下: • RecordSet. Status = StatusValue

  42. 本章首页 11.4 RecordSet对象 • 11.4.3 RecordSet对象数据集合 • RecordSet对象的数据集合包括Fields数据集合和Properties数据集合。Fields数据集合中包括RecordSet对象的所有Field数据字段对象;Properties数据集合包含RecordSet对象的所有属性。

  43. 本章首页 11.5 Fields数据集合和Field对象 • 每个Field对象对应于RecordSet中的一列,由多个Field对象可以构成Fields数据集合。使用Field对象的Value属性可设置或取得当前记录的数据。

  44. 本章首页 11.5 Fields数据集合和Field对象 • 11.5.1 Fields数据集合 • Fields数据集合提供的方法和属性包括Count属性(用来取得Fields数据集合中所包含的Field对象的数目。)、Refresh方法(用于刷新记录,可以重新取得Fields数据集合中所包含的Field对象。)和Item方法(用于利用Field对象的索引值(Index)得到某一个Field对象,这个索引值通常介于0到Count属性值-1之间。)。 语法如下: Set Fields = RecordSet.Field LongInt = Fields.count Fields.Refresh Set Field = Fields.Item(Index) 或 Set Field = Fields(Index)

  45. 本章首页 11.5 Fields数据集合和Field对象 语法如下: String = Field.Name Variant = Field.Value DataType = Field.Type LongInt = Filed.Attributes Byte = Field.NumericScale Byte = Field.Precision Long = Field.ActualSize Long = Field.DefinedSize Variant = Field.DefinedSize Variant = Field.OriginalValue Variant = Field.UnderlyingValue • 11.5.2 Field对象的属性 • Field对象包括Name,Value,Type,Attribute,NumericScale,Precision,ActualSize,DefinedSize,OriginalValue和UnderlyingValue等属性。

  46. 本章首页 11.5 Fields数据集合和Field对象 • 11.5.3 Field对象的方法 • Field对象的方法包括AppendChunk,GetChunk等方法,用来专门处理text,image等数据类型的,其中:AppendChunk方法用于将数据写到数据库中;GetChunk方法用于将数据从数据库中取出。语法如下: • Field.AppendChunk data • Variant = field.GetChunk(size)

  47. 本章首页 11.6 Properties数据集合和Property对象 • 一个ADO对象通常拥有多个属性可供使用,而每一个属性都是独立的Property对象,它们中的一些拥有自己的名称、值、数据类型和属性,为了方便地控制ADO,把这些具有相同父对象的属性集合于Properties数据集合中。 • 语法如下: • Set properties = ADO对象.Properties

  48. 本章首页 11.6 Properties数据集合和Property对象 • 11.6.1 Properties数据集合 • Properties数据集合是包含特定对象实例的所有Property对象,有时候也称为Properties数据集合对象。包括Count属性、Refresh方法和Item方法等。 • Count属性用来取得Properties集合中包含的Property对象个数。 • Refresh方法用来重新取得Properties数据集合中所有的Property对象。 • Item方法用来取得Properties集合中的某个Property对象。 语法如下: LongInt = Properties.count Properties.Refresh Set Property = Properties.Item(Index) 或 Set Property = Properties(Index)

  49. 本章首页 11.6 Properties数据集合和Property对象 • 11.6.2 Property对象 • Property对象主要是用来记录相应ADO对象的每一项属性值,包括Name,Value,Type和Attributes等属性。 • Name属性表示对象属性的名称。 • Value属性表示对象的属性值。 • Type属性表示对象属性的数据类型。 • Attributes属性表示对象的特性。 语法如下: String = Property.Name Variant = Property.Value DataType = Property.type LongInt = Property.Attributes

  50. 本章首页 11.7 Parameters数据集合与Parameter对象 • Parameters数据集合是Command对象所有Parameter对象的集合。 • Parameter对象是代表与参数化查询或存储过程的Command对象相关联的参数或自变量。

More Related