首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断数据库更新是否成功?

问如何判断数据库更新是否成功?
EN

Stack Overflow用户
提问于 2011-07-30 04:21:00
回答 4查看 10.7K关注 0票数 4

我正在尝试修改一些遗留的ASP经典代码,但我对ASP了解不多。如何判断数据库插入、更新或删除是否失败?所谓“失败”,我的意思是它抛出了一个错误或影响了零行。

下面是设置数据库连接的ASP文件中已经存在的代码:

代码语言:javascript
复制
On Error Resume Next
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=MSDAORA;Data Source=dbname;User Id=dbuser;Password=dbpw;"

有几个Select语句的工作原理如下:

代码语言:javascript
复制
qry =  "select stuff here..."
Set objRs = objConn.Execute(qry)

我知道如何从Select语句中获得结果,但是如何获得非Select语句的结果呢?使用结果集似乎不是正确的方法。还是真的是这样?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-30 11:42:25

使用第一个Execute方法参数获取受影响的行:

代码语言:javascript
复制
On Error resume next
Dim RecordsAffected as long
Dim cmd
Set cmd = server.createobject("ADODB.Command")

cmd.ActiveConnection = GetConnectionString()
cmd.CommandText = "Select stuff here"
cmd.CommandType = adCmdText

cmd.Execute RecordsAffected, , adExecuteNoRecords
If err.number > 0 or RecordsAffected = 0 then
    Response.Write "No record affected or SQL error or something"
end if

根据to several sources,使用adExecuteNoRecords将提高性能

来源:Execute method in MSDN

票数 12
EN

Stack Overflow用户

发布于 2011-08-01 00:29:56

您可以使用事务。

代码语言:javascript
复制
<%@Transaction="REQUIRES_NEW"  Language="VBSCRIPT" %>
<%Option Explicit%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%

'Perform Work
'Database Operation #1
'Database Operation #2

Sub OnTransactionCommit
    Response.Write "<H1>Success!</H1>"
End Sub

Sub OnTransactionAbort
    Response.Write "<H1>Failure!</H1>"
End Sub
%>

</BODY>
</HTML>
票数 1
EN

Stack Overflow用户

发布于 2011-07-30 04:23:41

对于INSERT和UPDATE,执行将返回受影响的行数,除非您在存储过程中未设置COUNT ON。当您定义一个Command对象时,调用它的ExecuteNonQuery方法将返回该数字。我使用这些数字的返回值(以及它们是否是非零的)来表示它是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6878577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档