怪事

scounix2003 2009-11-11 04:29:06
if request("sendnumber")<>"" or request("modtype")<>"brow" then
str=split(request("sendnumber"),"|")
amta=0
for i=0 to ubound(str)-1
amta=amta+csng(gethxje(str(i)))
next
if amta = csng(request("upmamt")) then
for j=0 to ubound(str)-1
set rs=server.CreateObject("adodb.recordset")
sqls="select * from FS_AFFIRM_MONEY WHERE AMID='"&str(j)&"'"
rs.open sqls,session("sconn"),0,3
if not rs.eof then
amt=csng(rs("AMMNY"))-csng(rs("AMXMNY"))
amdate=rs("AMDATE")
upmoutname=rs("AMREMARK3")
upmoutaccount=rs("AMREMARK4")
upmbrno=rs("AMREMARK5")
session("sconn").execute "update FS_AFFIRM_MONEY set AMXMNY=AMXMNY+"&request("upmamt")&" WHERE AMID='"&str(j)&"'"
end if

amera="320100"
ammny=request("upmamt")
amxmny=0
upmid=request("upmid")
upmniid=request("upmniid")
amzy="不明款核销"
amidd=str(j)
amtype="1"

Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = Session("sconn") 'MyConStr是数据库连接字串
MyComm.CommandText = "IN_FS_AFFIRM_MONEY" '指定存储过程名
MyComm.CommandType = 4 '表明这是一个存储过程
MyComm.Prepared = true '要求将SQL命令先行编译
'声明参数
MyComm.Parameters.append MyComm.CreateParameter("@amera",200,1,6,amera)
MyComm.Parameters.append MyComm.CreateParameter("@amdate",200,1,8,amdate)
MyComm.Parameters.append MyComm.CreateParameter("@amtype",200,1,3,amtype)
MyComm.Parameters.append MyComm.CreateParameter("@ammny",5,1,24,ammny)
MyComm.Parameters.append MyComm.CreateParameter("@amxmny",5,1,24,amxmny)
MyComm.Parameters.append MyComm.CreateParameter("@upmniid",200,1,20,upmniid)
MyComm.Parameters.append MyComm.CreateParameter("@upmid",200,1,20,upmid)
MyComm.Parameters.append MyComm.CreateParameter("@amzy",200,1,20,amzy)
MyComm.Parameters.append MyComm.CreateParameter("@upmoutname",200,1,40,upmoutname)
MyComm.Parameters.append MyComm.CreateParameter("@upmoutaccount",200,1,15,upmoutaccount)
MyComm.Parameters.append MyComm.CreateParameter("@upmbrno",200,1,100,upmbrno)
MyComm.Parameters.append MyComm.CreateParameter("@amidd",200,1,20,amidd)
MyComm.Execute
Set MyComm = Nothing
next
end if
Response.Write "<script language=javascript>alert(""成功核销"");document.location='bmkhx_pre.asp'</script>"

end if

以上程序是用asp调用一段输入的字符串用“|”分割开的,截取后根据条件调用存储过程的,可是为什么每次都调用了两次了啊?比如后面的j=2,调用存储入库插表,却重复插入了两次
...全文
82 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 scounix2003 的回复:]
我就执行上一段,还是一样,插入2条,但我点右键刷新后,就只插入1条是对的,再刷新还是1条,但一开始是插入2条的?
[/Quote]

那不可能啊....刷新如果没有经过post 跟初次访问是一样的....
scounix2003 2009-11-11
  • 打赏
  • 举报
回复
我就执行上一段,还是一样,插入2条,但我点右键刷新后,就只插入1条是对的,再刷新还是1条,但一开始是插入2条的?
  • 打赏
  • 举报
回复
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = Session("sconn") 'MyConStr是数据库连接字串
MyComm.CommandText = "IN_FS_AFFIRM_MONEY" '指定存储过程名
MyComm.CommandType = 4 '表明这是一个存储过程
MyComm.Prepared = true '要求将SQL命令先行编译
'声明参数
MyComm.Parameters.append MyComm.CreateParameter("@amera",200,1,6,amera)
MyComm.Parameters.append MyComm.CreateParameter("@amdate",200,1,8,amdate)
MyComm.Parameters.append MyComm.CreateParameter("@amtype",200,1,3,amtype)
MyComm.Parameters.append MyComm.CreateParameter("@ammny",5,1,24,ammny)
MyComm.Parameters.append MyComm.CreateParameter("@amxmny",5,1,24,amxmny)
MyComm.Parameters.append MyComm.CreateParameter("@upmniid",200,1,20,upmniid)
MyComm.Parameters.append MyComm.CreateParameter("@upmid",200,1,20,upmid)
MyComm.Parameters.append MyComm.CreateParameter("@amzy",200,1,20,amzy)
MyComm.Parameters.append MyComm.CreateParameter("@upmoutname",200,1,40,upmoutname)
MyComm.Parameters.append MyComm.CreateParameter("@upmoutaccount",200,1,15,upmoutaccount)
MyComm.Parameters.append MyComm.CreateParameter("@upmbrno",200,1,100,upmbrno)
MyComm.Parameters.append MyComm.CreateParameter("@amidd",200,1,20,amidd)
MyComm.Execute
Set MyComm = Nothing

加点测试参数,就执行这段代码....看看...
scounix2003 2009-11-11
  • 打赏
  • 举报
回复
5555
我把for循环去掉还是不行,存储过程我在sybase直接调用也没的问题啊
  • 打赏
  • 举报
回复
for j=0 to ubound(str)-1

看你循环用command调用,这个地方不好说,没怎么明白你的问题,但是循环调用是很有可能有问题的...
scounix2003 2009-11-11
  • 打赏
  • 举报
回复
我顶
scounix2003 2009-11-11
  • 打赏
  • 举报
回复
有没有高人帮我指点一下啊,谢谢啦
scounix2003 2009-11-11
  • 打赏
  • 举报
回复
存储过程没的问题,应该是asp的问题,因为我在别的地方调用这个存储没有问题的!
anbs01 2009-11-11
  • 打赏
  • 举报
回复
你要看你的存储过程怎么写的了。
scounix2003 2009-11-11
  • 打赏
  • 举报
回复
要加在哪啊?
gxq323 2009-11-11
  • 打赏
  • 举报
回复
不清楚,你加上
if err.number=0 then
....
response.end()
end if
这应该就行了

28,406

社区成员

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

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