Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to tell if a db update was successful?

I'm trying to modify some legacy ASP classic code, and I don't know much about ASP. How do I tell if a database Insert, Update, or Delete failed? By 'failed', I mean it either threw an error or affected zero rows.

Here's the code that was already in the ASP file that sets up the database connection:

On Error Resume Next
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=MSDAORA;Data Source=dbname;User Id=dbuser;Password=dbpw;"

There are a few Select statements that work like:

qry =  "select stuff here..."
Set objRs = objConn.Execute(qry)

I understand how to get the results from the Select statements, but how do I get the results of a non-Select statement? Using a result set doesn't seem like it'd be the right way to do it. Or is it?

like image 912
DaveKub Avatar asked Dec 12 '22 10:12

DaveKub


1 Answers

Use the first Execute method parameter to get the rows affected:

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

Using adExecuteNoRecords will gain performance according to several sources

Source: Execute method in MSDN

like image 103
Eduardo Molteni Avatar answered Jan 25 '23 13:01

Eduardo Molteni