asp中rs.recordcount 返回值总是为-1

asp中rs.recordcount 返回值总是为-1,第1张

这样就没问题rsopen sqlstr,conn,3,2

这样就有问题rsopen sqlstr,conn,1,2

因为conn后第一个数字是1表示指针只能往前,3表示自由指针

使用RecordCount属性可确定Recordset对象中记录的数目。ADO无法确定记录数时,或者如果提供者或游标类型不支持RecordCount,则该属性返回–1。读已关闭的Recordset上的RecordCount属性将产生错误。

如果Recordset对象支持近似定位或书签(即Supports(adApproxPosition)或Supports(adBookmark)各自返回True),不管是否完全填充该值,该值将为Recordset中记录的精确数目。如果Recordset对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确RecordCount值而严重消耗资源。

Recordset对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount属性将返回-1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回-1或实际计数。

分类: 电脑/网络

问题描述:

我在ASP中用rstRecordCount,得到我的数据表的行数,实在我的数据表sutdent有7行,可是得到用rstRecordCount 得到的值却是"-1"这是为什么啊请高手指点!谢谢!!!

----------源代码------------

<%@language=vbscript%>

<%

dim n,sql,rst

path="data/studentinfomdb"

set n=createobject("ADODBconnection")

set rst=createobject("adodbrecordset")

nconnectionString= "PROVIDER=Microsoftjetoledb40;Data source=" & serverMapPath(path)

nopen

sql="select from student"

rstcursortype =adOpenStatic

rstopen sql,n

%>

<p>在ACCESS数据库studentinfo表中包含<% =rstrecordcount%>行记录</P>

<% rstclose %>

----------------------------------

------------显示结果---------------

在ACCESS数据库studentinfo表中包含-1行记录

----------------------------------

请教各位,这是为什么啊! 谢谢了!!!

解析:

把rstcursortype =adOpenStatic删掉,

用rstopen sql,Cnn,3,3

去试试。

首先纠正你的一个错误认识:

rsfields(0)value 是用来返回记录集rs当前位置第一个字段的值,而不是用来返回记录总数;

而rsRecordCount是真正用来返回记录总数的。

你的SQL语句中用到了COUNT() 函数,该函数返回符合查询中指定的搜索条件的行的数目,而不消除重复值。它对每行分别进行计数,包括含有空值的行。

因此,你的rs最终返回的只有一条记录,而该记录的内容是符合 duzheno='ben'条件的记录总数。

因此,用rsfields(0)value获得的是符合 duzheno='ben'条件的记录总数,而不是rs的总数,rs总数只有1;rsRecordCount=1是正确的。

你把第二段代码这样改写一下的话,两段代码的执行效果就会一样了:

<%

sql="select tushuno from borrow "

'sql=sql+" where duzheno='ben'"

Set rs1= ServerCreateObject("ADODBRecordset")

rs1open sql,conn,1,1

d=rs1RecordCount

%>

<%=d%>

其实这不是Delphi的bug,在一次查询显示中,如果数据记录数目大于能显示的数目(DBGrid)时,就会Queryrecordcount=-1,这是数据并没有完全载入本地,当程序 *** 作数据时,才会继续从数据库载入;所以这只是Delphi数据查询的优化。要得到准确的记录数你可以采用使用两种方法:1。Querylast;Queryfirst,然后Queryrecordcount就可以得到正确值(数据很大时这样做效率很低);2。新增一条查询语句,用以统计记录数目。

以上就是关于asp中rs.recordcount 返回值总是为-1全部的内容,包括:asp中rs.recordcount 返回值总是为-1、我在ASP中用rst.RecordCount时的问题!!急!!、关于rs.RecordCount和rs.fields(0).value等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9333606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存