查询执行存储过程必须刷新才能执行?

shenxian6 2010-07-15 11:18:36
如题,不知道为什么,查询的时候,必须刷新页面才能正常显示页面。但是再刷新一次,又报错,接着再刷新,又显示,这个是什么问题啊?

存储过程应该没问题,我的分页代码如下:

Class Page
Private connstr '数据库链接字符串

Private iPage '当前页码
Private iPageSize '每页记录数量
Private StrTable '要查询的表
Private StrText '要查询的字段
Private StrWhere '条件语句
Private StrIndex '索引字段
Private StrOrder '排序字段
Private StrSc '排序方法

Private ActionStr '翻页链接字符
Private Rs_dbs '记录集名称
Private cmd 'cmd对象名称
Private rsArray '返回的记录集数组
Private TotalNum '返回的总记录数

Private Sub Class_Initialize() '初始化类
iPageSize=25
iPage=Getsafestr(Request("iPage"))
ActionStr=""
StrWhere=""
StrOrder=""
StrSc=""
If (not IsNumeric(iPage)) Then
iPage=1
Else
If iPage<1 then iPage=1
If iPage>5000000 then iPage=1
End If
End Sub

Private Sub Class_Terminate() '释放类
set Rs_dbs=nothing
End Sub

Public Property Let SetConnstr(svalue) '取得:数据库链接字符串
connstr=Lcase(svalue)
End Property

Public Property Let SetiPageSize(svalue) '取得:每页记录数量
iPageSize=clng(svalue)
End Property

Public Property Let SetStrTable(svalue) '取得:SQL表名
StrTable=Lcase(svalue)
End Property

Public Property Let SetStrText(svalue) '取得:SQL查询的字段
StrText=Lcase(svalue)
End Property

Public Property Let SetStrWhere(svalue) '取得:SQL条件字段
StrWhere=Lcase(svalue)
End Property

Public Property Let SetStrIndex(svalue) '取得:索引字段
StrIndex=Lcase(svalue)
End Property

Public Property Let SetStrOrder(svalue) '取得:排序字段
StrOrder=Lcase(svalue)
End Property

Public Property Let SetStrSc(svalue) '取得:排序方法
StrSc=Lcase(svalue)
End Property

Public Property Let SetActionStr(svalue) '取得:翻页链接字符
ActionStr=Lcase(svalue)
End Property

Private Function MadeOrderBy() '方法:组合Order By 语句
dim TempStrOrder,TempStrSc,t
if StrOrder<>"" and StrSc<>"" then
TempStrOrder=split(StrOrder,",")
TempStrSc=split(StrSc,",")
if ubound(TempStrOrder)=ubound(TempStrSc) then
for t=0 to ubound(TempStrOrder)
if t=0 then
MadeOrderBy=TempStrOrder(t)&" "&TempStrSc(t)
else
MadeOrderBy=MadeOrderBy&","&TempStrOrder(t)&" "&TempStrSc(t)
end if
next
end if
end if
End Function


Private Sub OpenRs() '方法:获得记录集
Set Rs_dbs=Server.CreateObject("ADODB.RECORDSET")
Set cmd = Server.CreateObject("ADODB.Command")
with cmd
.ActiveConnection = connstr '数据库连接字串
.CommandText = "sp_Page" '指定存储过程名
.CommandType = 4 '表明这是一个存储过程
.Prepared = true '要求将SQL命令先行编译
.Parameters.append .CreateParameter("@iPage",3,1,4,iPage) '指定页数
.Parameters.append .CreateParameter("@iPageSize",3,1,4,iPageSize) '每页记录数
.Parameters.append .CreateParameter("@StrTable",200,1,200,StrTable) '分页时要查询的表名
.Parameters.append .CreateParameter("@StrText",200,1,1000,StrText) '字段
.Parameters.append .CreateParameter("@StrWhere",200,1,1000,StrWhere) '查询条件where 中的条件语句
.Parameters.append .CreateParameter("@StrIndex",200,1,30,StrIndex) '索引值
.Parameters.append .CreateParameter("@StrOrder",200,1,100,MadeOrderBy()) '排序的字段
.Parameters.Append .CreateParameter("@StrTotals",3,2,10) '总页数output
Set Rs_dbs = .Execute '提示这行错误
end with
End Sub

Public Property Get GetRs() '输出:记录集(数组方式)
call OpenRs()
If not (Rs_dbs.eof and Rs_dbs.bof ) then
GetRs = Rs_dbs.GetRows()
End If
Rs_dbs.close
TotalNum = cmd(7)
set cmd = nothing
End Property

Public Property Get GetTotalNum '输出:总记录数
GetTotalNum=TotalNum
End Property

Public Property Get GetTotalPage '输出:总页数
If (TotalNum mod iPageSize)<>0 Then
GetTotalPage=(TotalNum\iPageSize)+1
Else
GetTotalPage=(TotalNum\iPageSize)
End If
End Property

Public Property Get GetiPageSize '输出:每页显示条数
GetiPageSize=iPageSize
End Property

Public Property Get GetiPage '输出:当前页码
GetiPage=iPage
End Property

Private Function GetQueryUrl() '方法:获得当前URL
dim UrlFile,Query,Querys,i
UrlFile= Request.Servervariables("URL")
Query= Request.Servervariables("QUERY_STRING")
Querys=split(Query,"&")
For i=0 to ubound(Querys)
if trim(Querys(i))<>"" then
If trim(Querys(i))=replace(trim(Querys(i)),"iPage=","") then
GetQueryUrl=GetQueryUrl&Querys(i)&"&"
End If
End If
Next
if ActionStr="" then
GetQueryUrl=UrlFile&"?"&GetQueryUrl
else
GetQueryUrl=UrlFile&"?"&ActionStr&"&"&GetQueryUrl
end if
End Function

Public Property Get GetFenYe() '输出:分页
If (iPage>=1) and (clng(iPage)<=clng(GetTotalPage)) then
dim x,y,m,n,i,ActionUrL
ActionUrL=GetQueryUrl()
If iPage="" then iPage=1
iPage=Clng(iPage)
If TotalNum<>0 then
x=TotalNum\iPageSize
y=TotalNum mod iPageSize

If y<>0 then x=x+1 '总页数
if iPage>5 then
If (iPage+5)<=x then
n=iPage-4
m=iPage+5
Else
n=iPage-4
m=x
End If
Else
n=1
m=10
End If

If x<=10 then
If x<>1 then
if iPage<>1 then
Response.Write" <a href="&ActionUrL&"iPage="&(iPage-1)&">上一页</a> "
end if
for i=1 to x
if iPage=i then
Response.Write(i)
Else
Response.Write" <a href="&ActionUrL&"iPage="&i&">[ "&i&" ]</a> "
End If
next
if iPage<>x then
Response.Write" <a href="&ActionUrL&"iPage="&(iPage+1)&">下一页</a> "
end if
End If
Else
If iPage>5 then
Response.Write" <a href="&ActionUrL&"iPage=1>[首页]</a> "
End If
If iPage<>1 then
Response.Write" <a href="&ActionUrL&"iPage="&(iPage-1)&">上一页</a> "
end if
for i=n to m
if iPage>x then Exit For
if iPage=i then
Response.Write(i)
Else
Response.Write" <a href="&ActionUrL&"iPage="&i&">["&i&"]</a> "
End If
next
if iPage<>x then
Response.Write" <a href="&ActionUrL&"iPage="&(iPage+1)&">下一页</a> "
End If
if (iPage+5)<x then
Response.Write" <a href="&ActionUrL&"iPage="&x&">[尾页]</a> "
End If
End If
End If
End If
End Property

Public Property Get GetFenYeJmp(inForm) '输出:带跳转的分页
if inForm then
response.Write(GetFenYe()&" <input name='iPage' type='text' value="&iPage&" id='iPage' size='3'> ")
response.Write("<input type='submit' name='Submit' value='转'>")
else
'response.Write("<form name='Jmp' method='post' action='"&GetQueryUrl()&"'>")
response.Write(GetFenYe()&" <input name='iPage' type='text' value="&iPage&" id='iPage' size='3'>")
response.Write("<input type='submit' name='Submit' value='转'>")
'response.Write("</form>")
end if
End Property
End Class


...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenxian6 2010-07-15
  • 打赏
  • 举报
回复
而且查询的时候,有时候能查询到结果,有时候没有返回任何记录

真是吐血了。。
shenxian6 2010-07-15
  • 打赏
  • 举报
回复
其中提示:Set Rs_dbs = .Execute 这行错误

Microsoft OLE DB Provider for SQL Server (0x80040E14)
'ts' 附近有语法错误。
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

28,403

社区成员

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

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