ADO使用的简单介绍

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
   '1,1分别是 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,权作抛砖引玉吧。