数据|数据库一、 ADO概述
ADO(ActiveX Data Object)是一组优化的访问数据库的专用对象集,它为ASP提供了完整的站点数据库访问解决方案。ADO对象在服务器端执行,并向客户端提供含有数据库信息的内容,客户端也可以根据指定的权限返回参数来对数据库进行读写等操作。ADO的特点就是执行速度快、使用简单、低内存消耗且占用硬盘空间小。
因为ADO是通过ODBC来对数据库进行访问的,所以它可以连接各种支持ODBC的数据库,如Access、SQL Server、Oracle、Informix等。在使用ADO之前要先在ODBC中添加相应的数据库驱动程序,并创建相应的DSN(数据源名)。ADO 中包含许多对象,其中Connection对象和Recordset对象主要用于控制数据库存取,要建立一次数据库访问首先要创建一个 Connection对象,然后用基于这个Connection对象的Recordset对象来完成对数据库从操作。
二、 Connection对象
Connection对象代表了一个打开的同OLE DB数据源的连接,它有点类似于client/server数据库应用中同Server间的真实网络连接,我们可以独立于任何其它对象建立一个 Connection对象。注意,在引用一个Connection之前首先要创建这个Connection对象,其语法如下,其中connection为引用该Connection对象的变量:Setconnection=Server.CreatObject(“ADODB.Connetcion”)
Connection对象中包含有多个属性,下面是几个常用的属性,注意只能在创建Connection对象之后且该对象被打开前改变其属性。语法如:Connection.属性=属性值
1. ConnectionString一个包含连接信息的字符串,将一个“DSN名” 或是一个由“argument = value”组成的字符串传递给ConnectionString属性,可以为Connection对象指定一个数据源,此属性可以在连接打开前设置,也可以在“Open”命令中设置。ADO中的argument有以下几个:
参数 描述
Provider 该Connection对象的创建者,默认值为MSDASQL (Microsoft ODBC Provider for OLE DB)
Data Source 指定该Connection的ODBC数据源(DSN)
User 设置打开该连接的用户名
Password 设置打开该连接时所需要的密码
File Name 由创建者指定的包含该Connection信息的文件
2. Mode
可以设置为以下常量的参数,用来设置用户对当前连接的访问权限。
常量 值 含义
adModeUnknown 0 未设置对数据库的操作权限(默认)
adModeRead 1 只读
adModeWrite 2 只写
adModeReadWrite 3 可以读写
adModeShareDenyRead 4 禁止对数据源建立其它的只读连接
adModeShareDenyWrite 8 禁止对数据源建立其它的只写连接
adModeShareExclusive 12 禁止对数据源建立其它的读/写连接
adModeShareDenyNone 16 禁止对数据源建立其它的任何连接
3. ConnectionTimeout 指定等待建立连接的时间,若超时则中断请求并给出错误信息。等待时间以秒为单位,可以将一个整数值赋给这个参数,默认值是15秒。设置 ConnectionTimeout属性可以在网络拥挤或服务器忙时给出提示,防止无休止的等待。若将ConnectionTimeout的值设置为0,则系统一直等待直到连接建立成功。
4. CommandTimeout 指定当执行“Execute”命令时的等待时间,若超时则中断请求并给出错误信息。等待时间以秒为单位,可以将一个整数值赋给这个参数,默认值是30秒。使用Connection对象的Open、Close和Execute方法可以完成从建立数据库连接,到操纵数据库和最后关闭连接的所有数据库访问动作。
. Open Open方法打开Connection对象同数据源之间的物理连接,语法如下:
connection. Open ConnectionString,UserID, Password
connection 代表一个对象变量,用于引用已经存在的Connection对象。
ConnectionString 可选变量,含义同前面提到的ConnectionString属性。
UserID 可选变量,是一个包含建立连接时使用的用户名的字符串。
Password 可选变量,是一个包含建立连接时所使用的密码的字符串。
. Close 用Close方法可以关闭一个已经打开的Connection对象,但是此时该Connection对象并没有被从内存中删除,我们还可以改变它的属性参数或是打开这个对象,若要真正释放该对象占用的内存空间需要将这个对象设置为“Nothing”。如果基于此Connection对象还打开了其它的 RecordSet对象,在关闭Connection对象的同时会关闭所有相关的recordSet对象。
. Execute 使用Execute可以根据已经打开的Connection对象执行SQL语句或一个存储过程,并可以用一个RecordSet对象指向得出的结果集合。Execute命令的语法如下:
connection.Execute CommandText, RecordsAffected, Options
CommandText 字符串,包含将要执行的SQL语句、表名或存储过程。
RecordsAffected 可选参数,一个长整型变量,操纵执行完后,其返回值为该操纵影响的记录的数量。
Options 可选参数,描述CommandText中包含何种操纵参数,有以下可用值:
常量 值 含义
adCmdText 1 CommandText是一个用SQL语句描述的命令
adCmdTable 2 CommandText是一个表名
adCmdStoredProc 4 CommandText是一个存储过程
adCmdUnknown 8 CommandText是一个未知的命令类型
使用Connection对象的各种方法可以完成对数据库的各种访问动作,比如添加、删除、更新和选取等操作。
[1] [2] 下一页