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. |