insert操作没有完成的奇怪问题

CodeBeginner 2006-08-03 01:02:35
Function CheckInput(str)
Dim strTemp,strSemicolon,strNote
strSemicolon = "$$$"
strNote = "$$$$"
strTemp = Replace(str,";",strSemicolon)
strTemp = Replace(str,"--",strNote)

If InStr(LCase(str),"chr(59)") > 0 Or InStr(LCase(str),"chr(45)chr(45)") > 0 Then
Response.End
End If

If InStr(LCase(str),"char(59)") > 0 Or InStr(LCase(str),"char(45)char(45)") > 0 Then
Response.End
End If
CheckInput = strTemp
End Function


strAim = CheckInput(Request.Form("aim"))
strYam = CheckInput(Request.Form("yam"))
......

strSql="Update dat04_cart Set isorder=1, ordercode='" & strOrderCode & "' Where uid='" & strUID &"'"
Conn.Execute(strSql)

strSql="insert into dat05_order (total,firstname,lastname,email,priphone,secphone,icq,msn,aim,yam,ordercode) values(" & fltTotal & ",'" & strFname & "','" & strLname & "','" & strEmail & "','" & strPriPhone & "','" & strSecPhone & "','" & strIcq & "','" & strMsn & "','" & strAim & "','" & strYam & "','" & strOrderCode & "')"
Conn.Execute(strSql)

response.redirect "payment.asp?ordercode="& strOrderCode & "&total=" & fltTotal

我想在dat05_order和dat04_cart中应该同时存在相同strordercode(如od526)的记录,但昨天发现有以od526的记录在dat04_cart中,但在dat05_order中却没有od526的记录,我奇怪的是若代码执行insert语句前发生故障,可以理解.问题是在payment.asp中显示以od526的单子已经生效,即代码response.redirect "payment.asp?ordercode="& strOrderCode & "&total=" & fltTotal有执行,checkinput函数用以检验客户输入,若是客户输入有问题,那么update语句也不会执行啊.

dat05_order的结果如下:
create table dat05_order_info (
orderid int identity,
total float null,
firstname varchar(20) null,
lastname varchar(20) null,
email varchar(50) null,
priphone varchar(20) null,
secphone varchar(20) null,
icq varchar(20) null,
msn varchar(50) null,
aim varchar(50) null,
yam varchar(50) null,
isfinished bit null default 0,
ordercode varchar(30) null,
adddate smalldatetime null,
isvalid bit null default 0,
memo varchar(100) null,
startdate smalldatetime null,
curlevel int null,
rate varchar(4) null,
lastupdate smalldatetime null,
constraint PK_DAT05_ORDER_INFO primary key (orderid)

在什么情况下会出现上述情况啊,还是代码本身逻辑不够严密,不得其解,请诸位指点.
...全文
269 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
slayerbb 2006-08-03
  • 打赏
  • 举报
回复
有没有trigger....
  • 打赏
  • 举报
回复
有没有on error resume next ?
CodeBeginner 2006-08-03
  • 打赏
  • 举报
回复
to liuxiaoyi666,衷心感谢你的回复.
我把on error这句注释了,又做了一些测试,发现了问题是字符越界的问题,问题解决.谢谢.
  • 打赏
  • 举报
回复
你先把on error 这句去了,再看看,因为这个都不好说的,别人也需要通过测试和错误排查的

从你的代码上看,我说的这种错误在理论上是存在的
CodeBeginner 2006-08-03
  • 打赏
  • 举报
回复
sql应该没有错,因为上述情况只是偶尔发生,到目前为止,只发生一例.
我希望可以重现这个错误,从而修正,但我想的可能性都无法做到.
  • 打赏
  • 举报
回复
把 on error resume next 去掉

可能你的sql构建错了,把错误跳过就出现这样的问题了
CodeBeginner 2006-08-03
  • 打赏
  • 举报
回复
有个 on error resume next.
no trigger.
我试过输入不合法,代码执行到response.end就停止了.
还是不太明白为何会出现这种情况.

28,402

社区成员

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

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