Saludos.
De que manera puedo validar que un query efectivamente se realizo exitosamente??
Es decir, que despues de oConn.Ejecutar(strSQL) me diga si lo realizo o no.
Gracias
| ||||
| mmhh si insertaste, eliminaste o modificaste consultando si el registro existe. no veo otra manera saludos
__________________ Manual de ASP Avanzado ;-) |
| |||
| Esto te permite comprobar si ha habido algun error en la BD (faltan parámetros, error de sintaxis, etc) pero, como dice elaprendiz no devuelve si la inserción/modificacion/borrado ha salido exitosa. (al menos, si no lo ha sido )
Código:
on error resume next
oConn.execute(strSQL)
if err <> 0 then
' Se fastidió :-D
else
' Dejamos las cosas como estaban
on error goto 0
end if
Un saludo |
| ||||
| Pues fijense en lo siguiente:
Código:
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "C:\Inetpub\website\db\db.mdb"
strSQL = "UPDATE tabla SET contador=contador+1 where id_tabla = " & id & " AND campo_1 = " & campo_1 & " AND campo_2 = '" & campo_2 & "'"
on error resume next
conn.Execute strSQL
if err.number <> 0 then
strSQL2 = "insert into tabla (id_tabla, campo_1, campo_2, contador) values (" & campo_1 & "," & campo_2 & ",'1')"
conn.Execute strSQL2
else
response.write("Record was updated!")
end if
conn.close
Como verán la intensión es : Si el Update no logra ejecutarse, bien sea por error o por que no coinciden los parámetros del propio Update, entonces me realizará el INSERT Pero según veo, y luego de sus explicaciones, ese err.number me dará distinto de "0" es si da ERROR pero no si se ejecuto con exito o no. Así que estoy un poco trancado, ya que debo verificar si se logro hacer el UPDATE o no para poder mandar a ejecutar el INSERT. Que se les ocurre ??
__________________ José Molina La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente. |
| ||||
| Saludos Bien, pues finalmente encontre la manera de hacerlo. En ves de usar el on error resume, usamos "recordaffected" en el Execute: conn.Execute strSQL, recordaffected Y luego en vez de preguntar por if err.number <> 0 then lo que hacemos es: if recordaffected = 0 then Gracias de todas formas
__________________ José Molina La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente. |