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