不可思议的问题

ZcwAmy 2003-08-22 11:55:14
请看下面这段程序代码:
<!--#include file="conn.asp"-->
<%
Set rs=Server.CreateObject("ADODB.RecordSet")
Set rs1=Server.CreateObject("ADODB.RecordSet")
Set rs2=Server.CreateObject("ADODB.RecordSet")
Set rs3=Server.CreateObject("ADODB.RecordSet")
Set rs4=Server.CreateObject("ADODB.RecordSet")
SQLStr="Select * from grssq Order By grid DESC"
rs.open SQLStr,Conn,3,3,1
If rs.Eof=True Then
''没有操作
Else
for i=1 To rs.RecordCount
Str=" sjgz Like '%"&rs.Fields("gjz")&"%'"
If rs.Fields("xb")<>"不限" Then
If rs.Fields("xb")="男" Then
Str=Str&" and (xb='男' or xb='不限')"
ElseIf rs.Fields("xb")="女" Then
Str=Str&" and (xb='女' or xb='不限')"
End If
End If
nl=DateAdd("yyyy",-rs.Fields("nl"),Date)
Str=Str&" and (Int(nl1)>="&nl&" or Int(nl2)<="&nl&" or (Int(nl1)=0 and Int(nl2)=0))"
If rs.Fields("xl")<>"9" Then
Str=Str&" and whchd>="&rs.Fields("xl")&""
End If
SQLStr2="Select * from qyzhpb where"&Str
Set rs2=Conn.Execute(SQLStr2)
While Not rs2.Eof=True
SQLStr4="Select * from qyqkb where id="&rs2.Fields("qyid")&""
Set rs4=Conn.Execute(SQLStr4)
SQLStr3="Select * from grqkb where id="&rs.Fields("grid")&""
Set rs3=Conn.Execute(SQLStr3)
If rs4.Fields("mshdzh")<>"" Then
dzh=rs4.Fields("mshdzh")
Else
If rs4.Fields("gzdzh")<>"" Then
dzh=rs4.Fields("gzdzh")
Else
dzh=""
End If
End If
Conn.Execute ("Insert into ssqzhpb (sjgz,gsmch,dzh,dh,lxr,sjh) values('"&rs2.Fields("sjgz")&"','"&rs4.Fields("qymch")&"','"&dzh&"','"&rs4.Fields("lxdh")&"','"&rs4.Fields("lxr")&"','"&rs3.Fields("dwdh")&"')")
idjh=rs2.Fields("dxfsjh")&";"&rs3.Fields("id")&";"
Conn.Execute ("Update qyzhpb Set dxfsjh='"&idjh&"' where id="&rs2.Fields("id")&"")
rs2.MoveNext
Wend
rs.MoveNext
If rs.Eof=True Then
Exit For
End If
Next
rs.close
set rs=nothing
rs1.close
set rs1=nothing
rs2.close
set rs2=nothing
rs3.close
set rs3=nothing
rs4.close
set rs4=nothing
conn.close
set conn=nothing
End If
%>
第46行报错:Microsoft JET Database Engine 错误 '80004005'

标准表达式中数据类型不匹配。

/dx/save_qzssq.asp,行46

第46行语句是:rs2.MoveNext
如注释这行,则程序运行良好,但由于进入死循环,会不断添加同一条记录。并且即使将rs2.MoveNext语句移到
SQLStr2="Select * from qyzhpb where"&Str
Set rs2=Conn.Execute(SQLStr2)
下也还报同样的错误。
是不是很不可思议的问题?高手解决!
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dicklee1214 2003-08-22
  • 打赏
  • 举报
回复
这样就不用else了
dicklee1214 2003-08-22
  • 打赏
  • 举报
回复
If rs.Eof=True Then
''没有操作
Else
for ...

改称 if not rs.eof then
for...
你那样用很奇怪,可能出问题
jiejifeng 2003-08-22
  • 打赏
  • 举报
回复
If rs.Eof=True Then

While Not rs2.Eof=True

这两种语句都有错啊,其中If rs.Eof=True Then有好几处有,仔细就不查了,你把其中的

=true

去掉看看吧
54duke 2003-08-22
  • 打赏
  • 举报
回复
晕菜了....
cloudchen 2003-08-22
  • 打赏
  • 举报
回复
。。。这么多记录集

28,390

社区成员

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

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