ASP中几种打开记录集方式的比较

来源:互联网 发布:linux ftp命令大全 编辑:程序博客网 时间:2024/05/30 20:07
导读:
  先定义conn.asp
  <%

dim objConn

dim strConn

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &chr(34) &Server.MapPath("data.mdb") &chr(34)

set objConn = server.createobject("adodb.connection")

objConn.open strConn

%>  dim objConn

  dim strConn

  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &chr(34) &Server.MapPath("data.mdb") &chr(34)

  set objConn = server.createobject("adodb.connection")

  objConn.open strConn

  %>
  再来看一看几种不同打开记录集(recordset)的方式
  方式1、
  dim sql
  dim objRs
  sql = "select * from table1"
  set objRs = objConn.execute( sql )
  这种方式通过执行sql,返回后得到记录集,比较简单地得到经过筛选过的记录集,
  但是通过这种方式得到的记录集,不能进行分页显示。
  文件text1.asp
  <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
  
  <%

dim sql

dim objRs



sql = "select * from table1"

set objRs = objConn.execute( sql )



objRs.pagesize = 5

objRs.absolutepage = 1

%>  dim sql

  dim objRs

  

  sql = "select * from table1"

  set objRs = objConn.execute( sql )

  

  objRs.pagesize = 5

  objRs.absolutepage = 1

  %>
  请求该页面得到的结果是:
  ------------------------------------------------------------
  错误类型:
  ADODB.Recordset (0x800A0CB3)
  当前记录集不支持书签。这可能是提供程序或选定的游标类型的限制。
  /msg/test1.asp, 第 12 行
  浏览器类型:
  Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
  网页:
  GET /msg/test1.asp
  时间:
  2005年9月21日, 19:58:01
  ------------------------------------------------------------
  方式2、
  dim objRs
  set objRs = Server.CreateObject( "ADODB.Recordset" )
  objRs.open "table1" , objConn , 1 , 2
  用这种方式打开的记录可以进行分页显示。
  <%

dim objRs



set objRs = Server.CreateObject( "ADODB.Recordset" )

objRs.open "table1" , objConn , 1 , 2



objRs.pagesize = 5

objRs.absolutepage = 1

%>  dim objRs

  

  set objRs = Server.CreateObject( "ADODB.Recordset" )

  objRs.open "table1" , objConn , 1 , 2

  

  objRs.pagesize = 5

  objRs.absolutepage = 1

  %>
  用这个试试,哈哈,顺利运行。
  但这种方式打开的记录集不能排序
  文件test2.asp
  <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
  
  <%

dim objRs



set objRs = Server.CreateObject( "ADODB.Recordset" )

objRs.open "table1" , objConn , 1 , 2



objRs.sort = "field1"

%>  dim objRs

  

  set objRs = Server.CreateObject( "ADODB.Recordset" )

  objRs.open "table1" , objConn , 1 , 2

  

  objRs.sort = "field1"

  %>
  请求该页面得到的结果是:
  ------------------------------------------------------------
  错误类型:
  ADODB.Recordset (0x800A0CB3)
  当前提供程序不支持排序或过滤所必需的界面。
  /msg/test2.asp, 第 17 行
  浏览器类型:
  Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
  网页:
  GET /msg/test2.asp
  时间:
  2005年9月21日, 20:17:32
  ------------------------------------------------------------
  怎办呢?
  哈,这样就行啦。
  
  <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
  
  <%

dim objRs

set objRs = Server.CreateObject( "ADODB.Recordset" )

objRs.CursorLocation = 3

objRs.open "table1" , objConn , 1 , 2



objRs.sort = "field1 desc"

%>  dim objRs

  set objRs = Server.CreateObject( "ADODB.Recordset" )

  objRs.CursorLocation = 3

  objRs.open "table1" , objConn , 1 , 2

  

  objRs.sort = "field1 desc"

  %>
  总结一下:
  1、方式1,可以通过sql语句,方便地筛选你想要的记录。
  2、方式2,功能比较强大,但比较复杂。
  这种方式还有更有用的用法。详见其它参考资料。

本文转自
http://www.webjx.com/htmldata/2005-10-02/1128234863.html
原创粉丝点击