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

比较|记录集

先定义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
%>

再来看一看几种不同打开记录集(recordset)的方式

方式1、
 dim sql
 dim objRs

 sql = "select * from table1"
 set objRs = objConn.execute( sql )

这种方式通过执行sql,返回后得到记录集,比较简单地得到经过筛选过的记录集,
但是通过这种方式得到的记录集,不能进行分页显示。

文件text1.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!-- #include file="conn.asp" -->

<%
 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
%> 

用这个试试,哈哈,顺利运行。

但这种方式打开的记录集不能排序

文件test2.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!-- #include file="conn.asp" -->
<%
 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"%>
<!-- #include file="conn.asp" -->
<%
 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,功能比较强大,但比较复杂。
  这种方式还有更有用的用法。详见其它参考资料。

时间: 2024-12-01 17:10:28

ASP中几种打开记录集方式的比较的相关文章

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

比较|记录集|记录集 先定义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")

在ASP中使用断开的记录集

断开|记录集|记录集 我们在使用ASP 内置的ADO组件进行数据库编程时,通常是在脚本的开头打开一个连接,并在脚本的最后关闭它,但是就较大脚本而言,在多数情况下连接打开的时间要比它需要打开的时间长得多.因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称为断开的记录集. 下面我们就通过一个实例来说明这种技术的使用方法(NorthWind.mdb是Microsoft Access自带的一个数据库,文件adovb

asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作

如果要得到返回值,需要用Command的方法. 首先说明,返回值有两种.一种是在存储过程中直接return一个值,就象C和VB的函数返回值那样:另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定. 这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?) 存储过程如下: 复制代码 代码如下: use pubs GO -- 建立存储过程 create procedure sp_PubsTest -- 定义三个参数变量,注意第三个,特别标记是用于输出

ASP中五种连接数据库的方法

连接数据库 ASP中五种连接数据库的方法 简介 介绍ASP连接sql,连接access,等数据库的方法! 正文 ASP中五种连接数据库的方法 第一种 - 这种方法用在ACCESS中最多 strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("aspfree.mdb") set conn = server.createobject("adodb.connect

如何清理掉win7电脑中程序的打开记录?

  大家莫怪小编的语言组织能力不好,也许大家在看到这个题目的时候会觉得有些困惑,程序的打开记录,到底是什么意思呢?小编这里举一个最简单的例子吧,大家在使用Word的时候,右键点击这个图标,在右侧出现的菜单栏中就会出现最近使用改程序打开的文件记录,就像自己的隐私一样,有时候,大家并不想让别人看到这些打开记录,那么是否有办法可以让win7 64位旗舰版中的程序打开记录清除掉呢?下面,咱们就来看看该怎么操作吧! 1.首先介绍最简单的方法,大家在菜单中看到这些打开记录的时候,想要删除哪一项就直接鼠标移动

select-数据库中的2个记录集怎么连接

问题描述 数据库中的2个记录集怎么连接 就是调用记录集A,调用条件记录集A中有1列是等于记录集B的一列 $query_RecordsetA= "SELECT * FROM member WHERE username like ' $row_RecordsetB['author'] '";我这样写报错了 解决方案 注意+那里试字符串连接符,看看你什么语言,做对应调整 "SELECT * FROM member WHERE username like '" + $row

ASP中数据库操作中游标和加锁方式

数据|数据库|游标 一般而言,下面是个典型的打开数据库的过程. < % '游标类型 Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 '加锁类型 Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimis

一种基于记录集查找特定行的方法

记录集 问:我的一个表中包含了名为IdValue的单列主键.对于给定的IdValue值,我希望找到紧邻目标值之前和之后的表行(假定结果按IdValue排序).怎样才能不使用游标而通过一个基于集合的方法得到需要的结果? 答:Transact-SQL是一个基于集合的语言,使用它在结果集中定位特定的行并非一件易事.但是,服务器端ANSI Transact-SQL游标的性能远远不如基于集合的解决方案,因此,学习解决问题的多种技术非常重要,尤其在面临上述问题时. 以Northwind数据库中的Orders

asp 同时返回参数和记录集的存储过程

同时返回参数和记录集的存储进程 有时候,我们需要存储进程同时返回参数和记录集,比如在利用存储进程分页时,要同时返回记录集以及数据总量等参数.以下给出一个进行分页处理的存储进程: /*SP6*/ CREATE PROCEDURE DBO.GETUSERLIST @IPAGECOUNT INT OUTPUT, --总页数 @IPAGE INT, --当前页号 @IPAGESIZE INT --每页记录数 AS SET NOCOUNT ON BEGIN --创建临时表 CREATE TABLE #T