Foros del Web » Programando para Internet » ASP Clásico »

Validar ejecución QUERY

Estas en el tema de Validar ejecución QUERY en el foro de ASP Clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/02/2006, 15:08
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Validar ejecución QUERY

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
__________________
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.
  #2 (permalink)  
Antiguo 09/02/2006, 16:12
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
mmhh

si insertaste, eliminaste o modificaste consultando si el registro existe.


no veo otra manera


saludos
__________________
Manual de ASP Avanzado ;-)
  #3 (permalink)  
Antiguo 10/02/2006, 04:59
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
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
  #4 (permalink)  
Antiguo 10/02/2006, 06:47
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
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.
  #5 (permalink)  
Antiguo 10/02/2006, 09:50
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:05.