asp 批量update 问题!

net_yuhai 2009-10-04 03:49:32
----错误提示--------------

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

基于查询的更新失败,因为没发现要更新的行。

/admin/inboundSQL.asp,行 406

-----代码------------------------

If Not PLFHRS.EOF Then
While Not PLFHRS.EOF
PLFHRS("FHSL") = Trim(PLFHRS("SL"))&"="&Trim(PLFHRS("YSCMFB"))
PLFHRS("FHSJ") = Now()
PLFHRS("FHR") = request.Cookies("loginname")
PLFHRS.update
PLFHRS.movenext
Wend
End If


while 4 次后就会出错!
哪位能帮帮忙,感谢




...全文
92 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
net_yuhai 2009-10-05
  • 打赏
  • 举报
回复
昨天搞了半天没弄出原因来。今天终于解决了,在这里跟大家分享下我的喜悦,分析下错误原因。


DBPath_1 = "Provider=sqloledb;" & "Data Source=服务器IP地址;Initial Catalog=数据库名;User Id=数据库访问用户名;Password=访问密码;"

DBPath_2 = "DRIVER=SQL Server;server=数据库服务器名;uid=用户名;pwd=密码;database=数据库名;"


我原先用的是DBPath_2 ,今天改用DBPath_1. 结果成功了!太高兴了。

net_yuhai 2009-10-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ping2571 的回复:]
看看数据库的字段大小。这个问题应该是有条记录的数据长度超过了数据库字段的长度。
一、将数据库字段的长度调整大点。
二、程序里面判断下。判断限定数据长度
[/Quote]
-----------------------------------------
不是字段长度问题,因为如果是一条一条地UPDATE(用相同数据测试过,且字段长度也作过调整),一切正常,不会报错
ping2571 2009-10-04
  • 打赏
  • 举报
回复
看看数据库的字段大小。这个问题应该是有条记录的数据长度超过了数据库字段的长度。
一、将数据库字段的长度调整大点。
二、程序里面判断下。判断限定数据长度
net_yuhai 2009-10-04
  • 打赏
  • 举报
回复
五楼代码也不行
数据都是随机抽出来,不论是什么数据,只要它一到第五条记录,就会停止,且报错!所以排除数据的异样性。我郁闷半天了
hookee 2009-10-04
  • 打赏
  • 举报
回复
查看以下第五条记录的值相关字段和前四条有什么区别吗?
按说不会有这种限制的.
5楼的代码也不行?
net_yuhai 2009-10-04
  • 打赏
  • 举报
回复
现在的情况是:可以一条一条地UPDATE,可以小批量UPDATE,但是只限于4条记录,多了就不执行。且报错!
net_yuhai 2009-10-04
  • 打赏
  • 举报
回复
不会报错
hookee 2009-10-04
  • 打赏
  • 举报
回复
sql "UPDATE BM_ProcurementSystem SET FHSL=SL + '=' + YSCMFB,FHR='" & request.Cookies("loginname") & "', FHSJ = Now() WHERE (FHSL='' or FHSL is null) and (FHSJ='' or FHSJ is null) and (YSCMFB <>'' or YSCMFB is not null) and FLAG <>1 and (RQ between '"&starttime&"' and '"&endtime&"')"

输出sql 拷贝下来到数据库环境查询一下看看报什么错?
net_yuhai 2009-10-04
  • 打赏
  • 举报
回复
运行结果也报错

------------------错误---------------------
Microsoft Cursor Engine 错误 '80004005'
键列信息不足或不正确。更新影响到多行。
/admin/inboundSQL.asp,行 400

这行报错: PLFHRS.MoveNext
hookee 2009-10-04
  • 打赏
  • 举报
回复
或者: 以下 ACCESS中FHSJ = Date(), SQL Serer中 FHSJ = getDate()
<%
sql "UPDATE BM_ProcurementSystem SET FHSL=SL + '=' + YSCMFB,FHR='" & request.Cookies("loginname") & "', FHSJ = Now() WHERE (FHSL='' or FHSL is null) and (FHSJ='' or FHSJ is null) and (YSCMFB <>'' or YSCMFB is not null) and FLAG <>1 and (RQ between '"&starttime&"' and '"&endtime&"')"
conn.Execute sql
conn.Close

response.write " <script>alert('批量发货成功!');location.href('inboundSQL.asp"&request.Cookies("inboundSQLURLOption")&"'); </script>"
%>
hookee 2009-10-04
  • 打赏
  • 举报
回复
试试看:

<%
Set PLFHRS = server.CreateObject("ADODB.recordset")
PLFHRS.CursorLocation = 3
PLFHRS.open "select FHSL,FHR,FHSJ,SL,YSCMFB from BM_ProcurementSystem where (FHSL='' or FHSL is null) and (FHSJ='' or FHSJ is null) and (YSCMFB <>'' or YSCMFB is not null) and FLAG <>1 and (RQ between '"&starttime&"' and '"&endtime&"')",conn,1,4

Do While Not PLFHRS.EOF
PLFHRS("FHSL") = Trim(PLFHRS("SL")) & "=" & Trim(PLFHRS("YSCMFB"))
PLFHRS("FHSJ") = Now()
PLFHRS("FHR") = request.Cookies("loginname")
PLFHRS.MoveNext
Loop
PLFHRS.UpdateBatch
PLFHRS.Close
Set PLFHRS=Nothing
conn.Close

response.write " <script>alert('批量发货成功!');location.href('inboundSQL.asp"&request.Cookies("inboundSQLURLOption")&"'); </script>"
%>
net_yuhai 2009-10-04
  • 打赏
  • 举报
回复
Set PLFHRS = server.CreateObject("ADODB.recordset")
PLFHRS.open "select FHSL,FHR,FHSJ,SL,YSCMFB from BM_ProcurementSystem where (FHSL='' or FHSL is null) and (FHSJ='' or FHSJ is null) and (YSCMFB<>'' or YSCMFB is not null) and FLAG<>1 and (RQ between '"&starttime&"' and '"&endtime&"')",conn,1,3
If Not PLFHRS.EOF Then
While Not PLFHRS.EOF
PLFHRS("FHSL") = Trim(PLFHRS("SL"))&"="&Trim(PLFHRS("YSCMFB"))
PLFHRS("FHSJ") = Now()
PLFHRS("FHR") = request.Cookies("loginname")
PLFHRS.movenext
Wend
PLFHRS.update
response.write "<script>alert('批量发货成功!');location.href('inboundSQL.asp"&request.Cookies("inboundSQLURLOption")&"');</script>"
End If
PLFHRS.close
Set PLFHRS=Nothing

-------------------------------------------------
PLFHRS.MoveNext 这一行提示错误
如果刚好是4条数据,记录可以被更新,但也会报同样的错。超过4条,则只更新4条,其余的不更新,且报错。
hookee 2009-10-04
  • 打赏
  • 举报
回复
上下文贴一下看看,这些代码似乎没错
net_yuhai 2009-10-04
  • 打赏
  • 举报
回复
没人能回答此问题?

28,391

社区成员

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

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