二、connection对象:
在ado的模型中,connection对象是最基本的对象,他主要是提供与数据库的连接。其他的两个对象都是通过它与数据库的连接来完成操作的。它的属性、方法如下所示。
connection对象的主要属性
1、 cursorlocation,它的取值有两个,一个是aduseclient,一个是aduseserver(默认),从其英语本身的含义就可以看出,前者是使用客户端的游标,而后者是使用服务器端的游标。二着的差别在于aduseclient游标可以提供供应商所没有提供的额外的属性,因而灵活性更大。需要注意的是connection对象与recordset对象均有此属性,由connection对象产生的recordset对象会自动的继承这个属性。另外要让此属性对connection和recordset对象的实例起作用的话,必须在打开它们之前先定义。
下面看一个例子
set conn=server.createobject("adodb.connection")
conn.cursorlocation=aduseclient
strconn ="driver={sql server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
conn.open strconn
set rs= server.createobject("adodb.recordset")
rs.open "emloyee",conn,,,adcmdtable
采用次种方式则conn与rs的游标均为aduseclient了。
2、 connectionstring,在打开一个connection实例之前设定数据库的连接信息。在上面的例子中我们使用了一条语句conn.open strconn,其中的strconn就是connectionstring,因此我们可以重写上面的语句如下:
conn.connectionstring=strconn
conn.open
3、 connectiontimeout,设置连接超时。
4、 commandtimeout,设置命令执行超时。
connection的主要方法
1、 open,打开一个connection的对象实例,常用的写法为conn.open connectionstring,如果在打开之前已经定义了connectionstring属性的话,就可以直接的打开。
2、 execute,产生一个recordset实例,常用的写法为
rs=conn.excute commandtext,recordsaffected,option
其中的commandtext可以为以下的几种形式,主要由option的值来决定1) sql语句,此时option的值为adcmdtext,表示将执行一段sql语句。2)数据库的一个表名,此时option的值为adcmdtable,表示将对该表进行操作。
3、一个storedprocedure名字,此时option取值为adcmdstoredproc,它表示将要执行一个sql上定义的存储过程。这是一个非常灵活而强大的方法,它可以对用户隐藏数据库的具体信息,而只需用户提供适当的参数就可以了,还能返还需要的参数值。在后面介绍command对象时再做详细的介绍。值得注意的是,有时excute后并不需要返回一个recordset对象,例如在表中删除记录。看下面的例子:
set conn= server.createobject("adodb.connection")
conn.connectionstring="driver={sql server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
conn.open
conn.execute "delect from employee where job_id=1;",,adcmdtext
该例子删除employee表中job_id为1的记录,并不需要再返回一个recordset的实例,但如果将最后一句变为rs= conn.execute "delect from employee where job_id=1;",,adcmdtext那么我们就可以用此rs来指向表中的记录条了。返回的rs和后面recordset对象中用source属性产生的rs是相同的。
connection对象的集合
1、 errors集合,对应产生error对象。我们将在后面做单独的讨论。
2、 properties集合,对应产生property对象,下面给出一段代码,它包含了property对象的主要方法和属性。
<%
"this program is testing the ado"s property object
const adcmdtable = &h0002
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
conn.connectionstring="driver={microsoft access driver (*.mdb)};dbq="& _
server.mappath("/source_asp")&"/property/employee.mdb;"
conn.open
rs.activeconnection=conn
rs.open "employee",,,adcmdtable
dim i,j
for i=0 to rs.fields.count-1
response.write rs.fields(i).name&"<br>"
next
for j=0 to rs.properties.count-1
response.write rs.properties(j).name&"<br>"
next
rs.close
conn.close
%>
