ADO的七种独立的对象:链接对象(ConnectionObject)记录集对象(RecordsetObject)域对象(FieldObject)命令对象(CommandObject)参数对象(ParameterObject)属性对象(PropertyObject)错误对象(ErrorObject)ADO的四个数据集合:Fields数据集合Properties数据集合Parameters数据集合Errors数据集合ADO对象与数据集合之间的关系Connection对象Recordset对象Error对象Parameter对象Command对象Field对象Execute操作方法ActiveConnect属性Execute操作方法Fields数据对象Source属性Parameters数据集合Errors数据集合ActiveConnect属性第十一章ADO与数据库ADO三个主要对象Connection可以建立应用程序和数据库之间的联系,建立联系之后还可以利用Command和Recordset对象对数据进行各种各样的具体操作。Command对象的主要功能是利用SQL语句进行查询操作,在数据库响应之后,把响应后的数据结果保存在Recordset对象中使用。ADO具有共享机制。不同的Command对象可以共享一个Connection对象,不同的WEB页面也可以共享一个Connection对象。一.Connection对象:Connection对象的主要用途是打开和关闭与数据库的连接,为完成这种操作ADO提供了许多属性和方法。如:ConnectionString属性用来描述打开数据库的方式;open和close方法分别用来打开和关闭一个数据库连接。1.创建或取消一个Connection对象:(1)要连接数据库首先要创建一个Connection对象。格式如下:SetobjConn=Server.CreateObject(“ADODB.Connection”)(2)在关闭与数据库的连接后,还要释放Connection对象在服务器中所占资源,格式如下:SetobjConn=Nothing2.安装与配置数据源名:要实现与数据库的连接,还必须为要链接的数据库配置数据源名(DSN)。因为我们在SQL语句中指定要操作的数据库时使用的是该数据库的数据源名,而不是数据库的实际名称。DSN(数据源名)是应用程序与数据库之间的桥梁,只有架设好这座桥梁(即为数据库建立数据源名)后,才能通过ODBC访问数据库。DSN名将是访问数据库时唯一传递给应用程序的标识。注:ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序都可以通过ODBC操纵数据库。配置DSN名的方法:控制面板ODBC数据源系统DSN添加MicrosoftAccessDriver(*.mdb)完成填写数据源名二.Connection对象的使用:1.打开与关闭数据库连接:创建好连接对象Connection后,就可使用它的Open方法来连接数据库。在两种情况下用Open方法打开数据库的连接:(1)在已经为数据库配置好数据源名的情况下,通过数据源名用Open连接数据库。方法有三种(见书P291)。(2)在未给数据库配置数据源名DSN的情况下,通过指定驱动程序名来实现与数据库的连接。(见书P292)格式:Driver={ODBC驱动程序名称}注:由ADO的关系图可知利用Recordset对象和Command对象的ActiveConnection属性也可以产生一个Conncetion对象。即:用Recordest对象或Command对象的ActiveConnection属性也可以设置数据库的连接。2.Connection对象的应用:(见例11.1)(1)ConnectionString属性:用来指出和数据源建立连接的字符串。如:例11.1中ConnectionString=“DSN=MyTb;Uid=;Pwd=;”(2)Open方法:开启与数据库的连接格式:Connection.OpenConnectionString,UserID,Password…UserID和Password为可选参数(在配置数据源名时若没有设置用户名和密码,则不需在此填写这两个参数。)(3)Close方法:关闭连接的数据库。关闭Connection对象并不会将对象从内存里移除。要完全将Connection对象从内存中移除需要将这个对象设置为Nothing。(4)Execute方法:执行指定的查询、SQL语句、存储过程或数据提供者指定的文本。格式:a.对于一个没有返回记录的命令串:Connection.ExecuteCommandText,RecordsAffected,Optionsb.对于有返回记录的命令串:Setrecordset=Connection.execute(CommandText,RecordsAffected,Options)返回值为一个Recordset对象。CommandText:一个包含SQL语句、表名、存储过程或数据提供者声明的文本串。RecordsAffected:可选参数,为返回操作时所影响到的记录总和数,它是更改、插入或删除记录的总和数。如果返回RecordSet对象,则这个值为-1。Options:可选参数,用来指定CommandText参数的类型,它的取值为adCmdText时,指出将CommandText里声明的操作作为一个命令的文本解释对待。二.Command对象:Command对象是用来对数据库提供请求,指定要执行的SQL语句,控制对数据库发出的请求信息,即指定对数据库操作的SQL命令。1.创建Command对象:格式:SetobjComm=Server.CreateObject(“ADODB.Command”)创建后的Command对象不能立即使用,还需要连接一个动态的Connection对象。有两种方法可实现Command对象和Connection对象的连接。(1)在创建了Connection对象后,再将Connection对象指定给Command对象的ActiveConnection属性。(见书P295)(2)直接使用字符串建立连接。(见书P295)2.Command对象的属性和方法:ActiveConnection属性:指出当前Command对象所连接的Connection对象。CommandText属性:指明表的名称或要执行的SQL语句。CommandType属性:指出了Command对象的类型,决定CommandText所存储的属性内容是SQL语句、表还是存储过程。当取值为adCmdText时,表示CommandText是一个包含着命令或存储过程调用的文字串。Execute方法:Command对象也有一个Execute方法,用来执行一个由CommandText属性指定的查询、SQL语句或者存储过程。3.Command对象的应用:(见例11.3)注:SetMyrs=MyComm.ExecuteRecordset对象代表着一个执行过的Command对象所返回的完整记录集合。这个语句利用Command对象的Execute方法执行了相关的命令后将返回的Recordset记录集保存在Myrs中。三.Recordset对象:Recordset对象主要是用来浏览和操纵从数据库中获取的数据,它代表着一个执行过的Command对象所返回的完整记录集合。它可以精确地操作数据库中的资料。所有的Recordset对象都是通过记录和字段构造出来的。1.Recordset对象的创建:(见书P299)(1)直接利用Server对象的CreateObject方法来创建:SetobjRs=Server.CreateObject(“ADODB.Recordset”)(2)利用Connection或Command对象的Execute方法创建一个Recordset对象:如:SetMyRs=MyConn.Execute(CommandText,RecordsAffected,adCmdText)2.Recordset对象的属性和方法:(1)Open方法:使用Open方法可打开一个记录集。格式:Recordset.OpenSource[,ActiveConnection,Cursortype,LockType,Options]Source:可选参数。它可以是一个合法的Command对象,一个SQL语句,一个表名,一个存储过程调用,或者是已存在的Recordset的文件名。ActiveConnection:可选参数。它指示一个连接对象名,或者是一个Connection串参数。CursorType:可选参数。它用来设置Recordset对象所用光标的类型。不同的光标对应着不同的数据获得方式。当其取值为adOpenStatic时,代表一个静态的光标。它将为你的记录集产生一个静态的备份,供你查找及产生报告。其它用户的新增、更新或删除,对你的记录集来说是不可见的。这个Recordset对象也支持全功能的浏览功能。该参数的默认值为adOpenForwardOnly,使用这种静态光标,只能向前浏览记录集。LockType:可选参数。该参数在打开Recordset对象进行编辑时,指示当前记录的锁定类型。当取默认值adLockReadOnly时,代表不能更改记录集的数据。Options:可选参数。它指定打开Recordset对象时对应的Command对象的CommandType类型设置,即指出了Command对象的类型。当它取值为adCmdText时,表示将Source作为一个命令的文本解释对待。当它取值为adCmdTable时,表示产生一个SQL查询以返回Source中命名的表的所有行和列。(6)Fields集合和Field对象:Recordset对象提供了一个Fields集合来直接存取所有的Field对象。每一个Field对象有一个名字及序号,分别是数据库表内的每一个字段。也就是说,每一个Field对象对应着Recordset对象的每一列。(2)EOF属性:该属性指示当前记录是否在记录之后,并返回相应的布尔值。当EOF为真时,当前记录指针已移到最后一条记录之后。(3)BOF属性:指示当前记录是否在首条记录之前,并返回相应的布尔值。(4)MoveFirst、MoveNext、MoveLast和MovePrevious方法:在指定的Recordset对象中移动到第一条、最后一条、下一条和前一条记录且使该记录成为当前记录。Recordset.MoveFirst:移动到第一条记录。Recordset.MoveLast:移动到最后一条记录。Recordset.MoveNext:移动到下一条记录。Recordset.MovePrevious:移动到前一条记录。(5)Close方法:关闭一个Recordset对象及其相关的对象。格式:Recordset.Close该方法只能关闭一个Recordset对象,并且释放相关的数据和为这个特殊的Recordset对象所申请的资源,却并不能将该Recordset对象从内存中清除,如果不再需要该对象了,需要将它赋值为Nothing才能将它完全清除,释放所占的内存资源。setrecordset=nothing3.Recordset对象的应用(见例题11.4)第十二章Web数据库一、概述:Web数据库=因特网+数据库二、Web数据库的使用:(见图12.1)三、ASP、ADO和Web数据库三者之间的关系:ADO对象模块ODBC或OLEDB驱动程序ASPADO组件数据库四、Web数据库的设计:1.存储数据的方法:几种存储方法的比较。(见表12.1)2.设计时考虑的问题