1/241第6章使用ADO对象6.1使用Connection对象6.2使用Recordset对象6.3使用Command对象2/241第6章使用ADO对象6.1使用Connection对象Connection对象代表了打开的、与数据源的连接,该对象代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象等价于到服务器的实际网络连接。使用该对象可以实现与MicrosoftSQLServer和MicrosoftAccess等数据库的连接,也可以通过SQL语句对所连接的数据库进行各种各样的操作。6.1.1创建数据库连接1.创建Connection对象实例与使用其他ASP组件一样,在使用ADOConnection对象之前,应使用Server.CreateObject方法创建该对象的实例,语法格式如下:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)%第6章目录3/241第6章使用ADO对象2.指定连接字符串Connection对象的ConnectionString属性可以包含用来建立数据库连接的信息。该属性的取值是一个字符串,通常称为连接字符串,包含一系列的“参数=值”语句,各个语句用分号分隔。例如,当在ASP中访问Access数据库时,可以在连接字符串中包含DRIVER和DBQ两个参数,分别指定所用的数据库驱动程序和要连接的Access数据库文件的路径。例如:%cnn.ConnectionString=DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ=c:\test.mdb%打开连接时ConnectionString属性为只读,关闭连接后该属性可读可写。第6章目录4/241第6章使用ADO对象3.设置连接超时周期使用Connection对象的ConnectionTimeout属性可以设置在终止尝试和产生错误前建立数据库连接期间所等待的时间,该属性设置或返回指示等待连接打开的时间的长整型值(单位为秒),默认值为15。如果由于网络拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,可以使用Connection对象的ConnectionTimeout属性。如果打开连接前所经过的时间超过由该属性设置的时间,将产生错误,并且ADO将取消该尝试。如果将该属性设置为0,ADO将无限等待直到连接打开。打开连接时ConnectionTimeout属性为只读,关闭连接后该属性可读可写。4.打开数据库连接使用Connection对象的Open方法可以建立到数据库的物理连接,语法:connection.OpenConnectionString,UserID,Password,OpenOptions在上述语法格式中,所有参数都是可选的。其中ConnectionString指定连接字符串。UserID指定建立连接时所使用的用户名称。Password指定建立连接时所用密码。使用OpenOptions参数可以设置异步打开连接。第6章目录5/241第6章使用ADO对象5.检查Connection对象的状态使用Connection对象的State属性可以检查该对象的当前状态,该属性是只读的,其返回值是一个长整型数字,返回下列常量之一:adStateClosed:表示该对象是关闭的。adStateOpen:表示该对象是打开的。以上符号常量包含在文件adovbs.inc中,可以在\ProgramFiles\CommonFiles\System\ado文件中找到该文件,该文件包含与ADO一起使用的符号常量的定义清单。若要使用这些符号常量,应将该文件复制到站点主目录下,并使用#include指令将该文件包含到ASP页中。6.关闭数据库连接在对打开的Connection对象的操作结束后,可以使用Close方法释放所有关联的系统资源。语法格式如下:object.Close其中object参数指定Connection对象的名称。需要说明的是,关闭对象并非将它从内存中删除,此时可以更改它的属性设置并在以后再次使用Open方法打开它。要将对象完全从内存中删除,可以将对象变量设置为Nothing。第6章目录6/241第6章使用ADO对象6.1.2连接SQLServer数据库1.对SQLServer数据库创建OLEDB连接对SQLServer数据库创建OLEDB连接时,可以将连接信息保存在连接字符串中,也可以将连接信息保存数据链接文件中。下面的脚本说明如何使用Connection对象创建到SQLServer数据库的OLEDB链接。%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=PROVIDER=SQLOLEDB;&_DATASOURCE=ServerName;&_UID=UserName;PWD=Password;DATABASE=DatabaseNamecnn.Open%PROVIDER参数指定OLEDB提供程序的名称。DATASOURCE参数指定SQLServer数据库服务器的名称。UID参数指定连接中使用的SQLServer登录标识。PWD参数给出SQLServer登录密码。DATABASE参数指定位于数据库服务器上的一个指定数据库。第6章目录7/241第6章使用ADO对象使用数据链接文件创建数据链接文件后,在连接字符串中使用FILENAME参数来引用它,脚本如下:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=FILENAME=c:\MydataLink.udl;&_UID=hegels;PWD=secretcnn.Open%如果在创建数据链接文件时选取了“允许保存密码”复选框,也可以省略连接字符串中的UID和PWD参数。创建数据链接文件操作演示第6章目录8/241第6章使用ADO对象2.对SQLServer数据库创建ODBC连接使用ODBC驱动程序连接SQLServer数据库时,可以将连接信息保存在以下三个位置上:保存在Windows注册表中,称为ODBC系统数据源(系统DSN),它对于当前机器上的所有用户都是可见的保存在文本文件中,称为ODBC文件数据源(文件DSN),它可以由安装了相同ODBC驱动程序的用户共享保存在字符串中,直接包含在ASP脚本代码中。创建系统数据源和文件数据源演示使用系统数据源%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=DSN=MySysDSN;UID=hegels;PWD=secretcnn.Open%第6章目录9/241第6章使用ADO对象使用文件数据源在连接字符串中使用FILEDSN参数来引用文件数据源,脚本如下:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=FILEDSN=MyFileDSN;UID=hegels;PWD=secretcnn.Open%使用连接字符串若要将所有连接信息直接保存在连接字符串,应当在连接字符串中包含以下四个参数:DRIVER参数指定所用的ODBC驱动程序,UID和PWD给出用户标识和密码,DATABASE参数指定要连接的数据库,脚本如下:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=DRIVER={SQLServer};&_UID=hegels;PWD=secret;DATABASE=Northwindcnn.Open%【例6.1】演示第6章目录10/241第6章使用ADO对象6.1.3连接Access数据库1.对Access数据库创建OLEDB连接使用OLEDB提供程序对Access数据库创建连接时,可以将连接信息保存在连接字符串,也可以将连接信息保存在数据链接文件中。下面的脚本说明如何使用MicrosoftAccess数据库的OLEDB提供程序来打开一个数据库连接。%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=PROVIDER=Microsoft.Jet.OLEDB.4.0;&_DATASOURCE=&_MapPath(Data/Northwind.mdb)cnn.Open%在上述脚本中,连接字符串包含PROVIDER和DATASOURCE两个参数:前者指定连接数据库所使用的OLEDB提供程序,在本例中为Microsoft.Jet.OLEDB.4.0;后者指定要连接的Access数据库,在本例中通过调用Server.MapPath方法指定了该数据库的路径。第6章目录11/241第6章使用ADO对象使用数据链接文件在连接字符串中通过FILENAME参数来引用数据链接文件:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=FILENAME=AccessDataLink.udlcnn.Open%创建数据链接文件演示第6章目录12/241第6章使用ADO对象2.对Access数据库创建ODBC连接使用ODBC驱动程序对Access数据库创建连接时,可以将使用以下三种方式来保存连接信息:创建系统数据源,将连接信息保存Windows注册表中创建文件数据源,将连接信息保存文本文件中将连接信息保存在字符串中,直接包含在ASP脚本中创建系统数据源和文件数据源演示使用系统数据源在连接字符串中使用DSN参数来引用系统数据源:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=DSN=AccessDSNcnn.Open%第6章目录13/241第6章使用ADO对象使用文件数据源在连接字符串中使用FILEDSN参数来引用文件数据源:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=FILEDSN=AccessDSNcnn.Open%使用连接字符串使用DRIVER参数指定所使用的ODBC驱动程序,使用DBQ参数指定要连接的Access数据库:%DimcnnSetcnn=Server.CreateObject(ADODB.Connection)cnn.ConnectionString=DRIVER={MicrosoftAccessDriver(*.mdb)};&_DBQ=&Server.MapPath(Data/Northwind.mdb)cnn.Open%第6章目录14/241第6章使用ADO对象6.1.4使用Connection对象执行SQL查询使用Connection对象的Execute方法还能够执行指定的查询、SQL语句、存储过程或特定提供程序的文本等内容。该方法有下列两种语法格式。对于不按行返回的命令字符串:connection.ExecuteCommandText,RecordsAffected,Options对于按行返回的命令字符串:Setrecordset=connection.Execute(CommandText,RecordsAffected,Options)其中CommandText参数是一个字符串,包含要执行的SQL语句、表名、存储过程或特定提供程序的文本。该参数的内容可以是标准的SQL语法或任何提供程序支持的特殊命令格式。RecordsAffected是可选参数,长整型变量,提供程序向其返回操