请问asp+sqlserver为何不允许访问空记录的表格

ufo20020427 2005-09-23 11:49:57
<!-- #include file="conn.asp" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言本</title>
<style type="text/css">
<!--
a {
text-decoration: none;
color: #0099FF;
}
a:visited {
color: #00FF00;
}
-->
</style>
</head>
<body>
<%
sql="select * from bbs order by id desc"
rs.open (sql),conn,1,1
Page=1
rs.PageSize = 10 '每页显示记录数
if Not IsEmpty(Request("Page")) then '如果PAGE已经初始化...
Page = CInt(Request("Page")) '接收PAGE并化为数字型赋给PAGE变量
if Page > rs.PageCount then '如果接收的页数大于总页数
page=Rs.pageCount
rs.AbsolutePage = rs.PageCount '设置当前显示页等于最后页
else
rs.AbsolutePage = Page '显示当前页等于接收的页数
end if
else
Page = 1 '如果page未被初始化则设为1
End if
rs.AbsolutePage=page
%>
<b><a href="say.asp">留言</a></b><br><br>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26">
<tr>
<td width="17%"><b>作者</b></td>
<td width="83%"><b>主题</b></td>
</tr>
</table>
</center>
</div><hr size="1">

<%
NumRows=0
while not rs.eof and NumRows<rs.PageSize
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20">
<tr>
<td width="17%"><%=rs("name")%> </td>
<td width="83%">
<a href="show.asp?id=<%=rs("id")%>"><%=rs("title")%></a>
<% if date()-rs("shijian")<=1 then %>
<% ="<img src='image/new.gif'>"%>
<% end if %>
</td>
</tr>
</table>
</center>
</div><hr size="1">
<% rs.MoveNext
NumRows=NumRows+1
wend
%>
</table>
<p> </p>
<p ALIGN="CENTER"> 共<%=rs.recordcount%>条纪录 目前为第<%=page%>页/共<%=rs.PageCount%>页
<%if page>1 then%>
<a Href="index.asp?Page=<%=1%>">首页</a> <a Href="index.asp?Page=<%=page-1%>"><img src="image/pre.gif" alt="上一页" hspace="0" vspace="0" border="0" align="absmiddle"></a>
<%end if %>
<%if page<>rs.pagecount then %>
<a Href="index.asp?Page=<%=page+1%>"><img src="image/next.gif" alt="下一页" border="0"></a>
<a Href="index.asp?Page=<% = rs.PageCount%>">尾页</a>
<% end if %>
<form method=Post action="index.asp">
<font color="#000080">转到第:</font><input type="text" name="page" size="4" maxlength="10" value="<%=page%>">页
<input type="image" name="go" src="image/go.gif">
</form>
</p>
</center>
</body>
</html>
<%
rs.close
conn.close
set rs=nothing
set conn=nothing
%>

以上内容在Access中即使是空记录也不会出错,但在Sql server 2000中就出错了,请问如何解决?谢谢!
...全文
151 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zr130 2005-09-24
  • 打赏
  • 举报
回复
这样呢
<%
NumRows=0
do while not rs.eof
%>

<% rs.MoveNext
NumRows=NumRows+1
if numrows>=rs.PageSize exit do
loop
%>
ufo20020427 2005-09-24
  • 打赏
  • 举报
回复
up
ufo20020427 2005-09-24
  • 打赏
  • 举报
回复
to bbsad(web程式员)
应该不会出其他的错,因为以上代码在Access中完全正常,包括空记录时
在SQL Server也正常(除了空记录时)
ufo20020427 2005-09-24
  • 打赏
  • 举报
回复
谢谢zr130(day) 但我试了,当分页时会少一条记录的
bbsad 2005-09-24
  • 打赏
  • 举报
回复
能不能把错误代理也贴出来..可能是其它的错呀.如<% if date()-rs("shijian")<=1 then %>
zr130 2005-09-24
  • 打赏
  • 举报
回复
或这样写呢
<%
NumRows=1
do while not rs.eof
%>

<% rs.MoveNext
NumRows=NumRows+1
if numrows>=rs.PageSize exit do
loop
%>
zr130 2005-09-24
  • 打赏
  • 举报
回复

<%
NumRows=0
while not rs.eof and NumRows<rs.PageSize
%>
改为:
<%
NumRows=1
while not rs.eof and NumRows<rs.PageSize
%>
试试呢
jackhuclan 2005-09-24
  • 打赏
  • 举报
回复
我也碰到相同问题了,郁闷啊,正上来寻求解决办法呢?
ufo20020427 2005-09-24
  • 打赏
  • 举报
回复
这是否日语我也不清楚啊,可能是装了试用版的SQL或其他软件不兼容所致的,我也不知道~
不过这个没关系的,因为我确定是因为数据库表没记录造成的。
可问题是上面的语句在Access下即使空记录也正常啊,为何SQL Server 2000就不行,难道SQL server与Access对EOf的定义不同?
上面一段内容是因为涉及分页代码,不用管它只要帮我分析一下数据库指针rs读取出错的问题就好了
例如:
while not rs.eof
<% rs.MoveNext
NumRows=NumRows+1
wend
%>
先谢谢大家了!
jingxiaoping 2005-09-24
  • 打赏
  • 举报
回复
在ACCESS下面,执行的时候对某些字符会不是很敏捷的,和SQLSERVER不太一样。
ufo20020427 2005-09-24
  • 打赏
  • 举报
回复
谢谢jingxiaoping(南无本师释迦牟尼佛) 大哥的提醒
上面这段分页是我参考别人的分页套用的,正是去掉最后rs.AbsolutePage就OK了
ufo20020427 2005-09-24
  • 打赏
  • 举报
回复
那为何在Access中没事?那么请问就这情况应如何修改。谢谢!
jingxiaoping 2005-09-24
  • 打赏
  • 举报
回复
还是不明朗吗?如果不出意外的话,应该是最后一个rs.AbsolutePage=page的错误,因为不允许在没有数据(既rs.recordcount=0)的情况下对rs.AbsolutePage进行赋值。
ufo20020427 2005-09-24
  • 打赏
  • 举报
回复
还是不行,在Access中空记录时OK但在SQL Server还是不行 BOF EOF......
ufo20020427 2005-09-23
  • 打赏
  • 举报
回复
上面的一大段内容是涉及到分页显示的,不用考虑
只是while not rs.eof and NumRows<rs.PageSize 这一句应该是空记录也不会出错呀
jingxiaoping 2005-09-23
  • 打赏
  • 举报
回复
日语的不明白呀。
ufo20020427 2005-09-23
  • 打赏
  • 举报
回复
BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。
注:上面的乱码可能是我装了不兼容的SQl所致,不影响使用的。
可确定是空记录引起的。但上面的代码在Access作数据库时完全正常
jingxiaoping 2005-09-23
  • 打赏
  • 举报
回复
把错误代码贴一下。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧