标题ADO使用的简单介绍
栏目网络与通信
作者飞鸟
发布2001年41期
ADO即ActiveX Data Objects,是微软提供的使ASP具有访问数据库的组件。熟悉VB数据库编程的朋友会发现ADO与RDO(Remote Data Objects)有某种类似的地方。但据说ADO的访问速度更快,内存需要更小。
ADO中主要有如下几种对象Connection、Command、Recordset、Error、Parameter、Property、Field。而Recordset对象是ADO访问数据的主要界面。
Recordset常通过如下的方式访问数据。
1.通过Execute方法
On a Command object
Set recordset = command.Execute _
(RecordsAffected,Parameters,Options)
command.Execute RecordsAffected,_
Parameters,Options
On a Connection object:
Set recordset = connection.Execute _
(CommandText,RecordsAffected,Options)
这种方式下,做一个查询,是十分简单有效的(尤其是用connection)。曾对Access写过这样的程序:
set rs=conn.execute("select*from employee")
结果发现rs.recordcount等于-1,也就是在这种方式下无法知道记录总数。
这种方式一个强大的功能就是可以知道操作影响的记录数。
例如:
dim recordsAffected
set rs=conn.execute( _
"delete * from employee where sales<100",_
recordsAffected)
response.write cstr (recordsAffected)& _
" record(s)deleted"
2.通过Open方法
recordset.Open Source,ActiveConnection,_
CursorType,LockType
这种方法下,你必须先调用Server.Createobjectm()产生一个Recordset实例:
dim rs
rs=server.createobject("adodb.recordset")
调用open方法的时候跟前面一样,也可使用Command或不用。
先来说说不用Command对象的情况,下面是做查询记录的例子:
dim sql
dim rs
dim conn
on error resume next
set conn=server.createobject("adodb.connection")
conn.open "employee","sa",""
sql="select * from employee where sales>="& _)
cstr(minSales)
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
'11分别是 CursorType和 LockType
'请参考 ADO的说明书
'如果以这种方式打开Recordset,
' recordcount就不会是-1了
do while not rs.eof
' here is some operate
rs.movenext
loop
rs.close
conn.close
下面是删除记录的例子:
dim sql
dim rs
dim conn
on error resume next
set conn=server.createobject("adodb.connection")
conn.open "employee","sa",""
sql="delete from employee where sales<=100"
set rs=server.createobject"adodb.recordset"
rs.open sql,conn,3,3
response.write "record(s,deleted")
conn.close
注意此时由于rs并不返回记录集。所以结束时不必关闭rs。这样的用法同时适用于SQL的update、insert into语句。
再来讨论使用Command对象的open方式。
使用之前先要建立Command对象的实例
dim cmdTemp
dim dataconn
Set DataConn = Server.CreateObject _
("ADODB.Connection")
dataconn.open "employee","sa",""
Set cmdTemp = Server.CreateObject _
("ADODB.Command")
cmdTemp.CommandText = _
"SELECT (FROM employee WHERE employeeID=" & _
cstr(paraID)
cmdTemp.CommandType = 1
Set cmdTemp.ActiveConnection = dataConn
dim rs
set rs=server.createobject("adodb.recordset")
rs.Open cmdTemp(1,3)
rs("salary")= rs("salary")+ 200
rs("...")=....
......
rs.Update
rs.close
dataconn.close
这种介绍只是让大家简单了解ADO,权作抛砖引玉吧。