极品鉴宝师古栋:我在ASP中用rst.RecordCount时出现的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 03:48:15
我在ASP中用rst.RecordCount,得到我的数据表的行数,实在我的数据表sutdent有7行,可是得到用rst.RecordCount 得到的值却是"-1"这是为什么啊?请高手指点!谢谢!!!

----------源代码------------
<%@language=vbscript%>
<%
dim cnn,sql,rst
path="data/studentinfo.mdb"
set cnn=createobject("ADODB.connection")
set rst=createobject("adodb.recordset")
cnn.connectionString= "PROVIDER=Microsoft.jet.oledb.4.0;Data source=" & server.MapPath(path)
cnn.open
sql="select * from student"
rst.cursortype =adOpenStatic
rst.open sql,cnn
%>
<p>在ACCESS数据库studentinfo表中包含<% =rst.recordcount%>行记录</P>
<% rst.close %>
----------------------------------

------------显示结果---------------
在ACCESS数据库studentinfo表中包含-1行记录

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

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

这是由于vb默认把游标定位到服务器了。
解决方法是在cnn.open之前加上:
cnn.CursorLocation = 3

rst.CursorLocation = 3

此外,rst.cursortype = adOpenStatic这句是不起效的,因为asp不支持ado常量(主要是asp本身没对这些常量进行定义),除非你把微软发布的adovbs文件包含进来,或者在Global.asa中加入:
<!-- METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library"
TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" -->

在rst.cursortype =adOpenStatic
后加:
rst.CursorLocation = 3

改这个就行了
rst.open sql,cnn,1,1