admin 管理员组文章数量: 887021
2023年12月17日发(作者:mybatisplus联合主键注解)
ASP Connection对象
Connection对象是与数据提供者进行连接的对象,代表一个打开的与数据源的连接。其他对象都必须在Connection对象的基础上才能发挥作用。Connection对象代表与数据源进行的惟一会话。如果是客户机/服务器模式的数据库系统,该对象可等价于到服务器的实际网络连接。Connection对象除了与数据源连接外,还可通过事务(Transaction)来确保在事务中所有对数据源的变更成功。可以使用ASP内置对象中Server对象的CreateObject方法来创建Connection对象,例如:
Set conn=Object("tion")
1.Connection对象的方法
Connection对象提供了8个用于管理数据库连接的方法,分别是:Open()、OpenSchema()、Execute()、Close()、Cancel()、BeginTrans()、CommitTrans()和RollbackTrans()方法,下面依次对其进行简单介绍。
Open()
Open方法用于创建与数据源的连接,只有使用了Connection对象的Open方法后,Connection对象才会真正存在,然后才能发命令对数据源产生作用。
例如,如下的示例语句使用ADO的Connection对象,并通过调用Open()方法使用OLE DB方式建立了一个到数据库的连接。
<%
Set conn=Object("tion")
str="Provider=.4.0;Data Source=" & h("")
str
%>
Execute()
Execute方法可用于执行指定的查询、SQL语句以及存储过程等。一般有两种可用格式,对于非按行返回的命令字符串可使用如下格式:
e CommandText,RecordsAffected,Options
对于按行返回的命令字符串可使用如下格式:
Set recordset=e(CommandText,RecordsAffected,Options)
该方法返回一个Recordset对象。参数CommandText是字符串类型,可以是要执行的SQL语句、表名、存储过程或特定提供者的文本;RecordsAffected是长整型变量,数据提供者将让它返回此次操作所影响的记录数。
例如,如果想知道在执行一个SQL语句后到底删除了多少条记录,可把一个变量传递给RecordsAffected,这样,通过检查该变量的值就可知道删除了多少记录;Options参数表示请求类型,它可以告诉数据源CommandText所代表的是一个SQL
命令、存储过程还是一个表名,它不是必须的。该参数的值及相应的含义如表5-3所示。
表5-3 Options参数的值及含义
常量
adCmdText
adCmdTable
adCmdStoreProc
adCmdUnknown
说明
指示将执行的是一个SQL命令
指示CommandText所代表的是一个表名
此参数表明Execute方法将要执行的是一个数据源知道的存储过程
此参数表明CommandText中的命令类型不清楚
Execute方法可以执行标准的SQL语句命令,如Select(查询提取数据)、Insert(插入数据)、Delete(查询提取数据)、Update(修改数据)、Create
Table(创建表)等操作。
Close()
创建一个Connection对象后,如果不需要,可以关闭该对象,并最终释放该对象,否则会长期占用系统资源。使用Close方法可以关闭Connection对象,如下所示(假设Conn是一个Connection对象实例):
但使用close方法只是将Connection对象关闭,并没有将其从内存中彻底清除,要将对象从内存中彻底清除,可使用下列语句:
Set Conn=Nothing
如果仅仅调用了close方法,再次使用该对象时不需要重新创建,而在将对象设置为Nothing后,就只有重新创建该对象才能使用。
Cancel()
使用Cancel方法终止执行异步方法调用(即用adAsyncConnect、adAsyncExecute或adAsyncFetch选项调用的方法)。它的调用语法为:
在表5-4中列出了Object可用于的类型对象,及调用Cancel方法将终止的任务。
表5-4 Object类型对象
对象名称
Command
被终止的任务
Execute
在Cancel方法被调用之前,Execute 方法的Options参数必须被设置为adAsyncExecute或者adAsyncFetch,否则会发生run-time错误。
Connection Execute或Open
在Cancel方法被调用之前,Open方法的Options参数必须被设置为adSyncConnect,Execute方法的Options参数必须被设置为adAsyncExecute或者adAsyncFetch,否则会发生run-time错误。
Record
Recordset
Stream
CopyRecord, DeleteRecord, MoveRecord, 或者 Open
Open
Open
OpenSchema()
OpenSchema方法可返回Recordset 对象,该对象包含有关数据源的模式信息。例如,schema信息可包括表的名称,表中的列名,每列的数据类型。Recordset将以只读、静态游标模式打开。
BeginTrans()、CommitTrans()和RollbackTrans()
这三个方法都和Connection对象的事务管理有关。当希望以独立单元保存或取消对源数据所做的所有更新时,需要使用这些方法。例如,在进行资金转帐时,必须从源账户中减去转帐数额,并将同样数额的资金划拨到目标账户,无论其中哪个更新失败,都将导致账户收支不平衡。在打开的事务中使用这些方法可确保要么全部进行更新,要么不做任何更新。
其中,BeginTrans表示开始一个新事务;CommitTrans表示保存所有更改并结束当前事务,它也可能启动新的事务;RollbackTrans方法可取消当前事务中所做的所有更改并结束事务,它也可能启动新事务。
2.Connection对象的属性
Connection对象具有属于自己的11个属性,他们可以设置和获取数据库连接的各种信息,如表5-5所示。
表5-5 Connection对象属性
属性名称
Attributes
CommandTimeOut
ConnectionString
ConnectionTimeOut
CursorLocation
DefaultDatabase
IslationLevel
Mode
Provider
State
Version
说明
包含Connection对象的事务状况
批示在终止尝试和产生错误之前执行命令期间需等待的时间
包含用来和数据源建立连接的字符串
包含连接到数据库的等待最长时间。如果超过此时间,则认为连接失败
包含当前所使用的光标位置
当前连接数据源所使用的默认数据库
包含Connection对象的独立级别
数据的更新许可权
包含Connection对象的数据提供者名称
包含Connection对象的当前状态
包含ADO的版本号
3.Connection对象连接数据库方式
建立ASP程序与数据库的连接可以有多种方式,虽然使用不同方式的连接细节不尽相同,但采用的连接方法都是一样的,即,都需要设置Connection对象的连接字符串ConnectionString(显式或隐式设置),都需要使用Connection对象的Open方法打开连接。在此给出各种常用数据的连接方式供读者参考,如表5-6所示。
表5-6 Connection对象的连接方式
连接方式
Access ODBC
Access OLE DB
MSSql ODBC
MSSql OLE DB
Index Service
ODBC数据源
数据连接文件
Mysql ODBC
Oracle ODBC
Oracle OLE DB
连接字符串描述
“Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;”
“Provider=.4.0;data source=ds;user id=admin;password=pass;”
“Driver={sql server};server=serverName;database=dbname;uid=sa;pwd=pass;”
“Provider=SQLOLEDB;data source=ds;initial catalog=db;
user id=admin;password=pass;”
“Provider=MSIDXS;Data source=catalog_name”
“DSN=dsnName”
“File Name=D:”
“Driver={mysql};database=db;uid=username;pwd=password;option=16386;”
“Driver={Microsoft odbc for oracle};server=;
uid=username; pwd=password;”
“Provider=;data source=ds;user id=userName;password=pass;”
版权声明:本文标题:ASP Connection对象 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702815841h431967.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论