Último error

28/07/2004 - 22:06 por jaimito | Informe spam
Hola compañeros...

Teniendo un fragmento de código así (DE EJEMPLO!!!):

Try

mySelectQuery = "SELECT OrderID, CustomerID FROM Orders"
SqlConnection myConn = new SqlConnection(myConnString)
SqlCommand myComm = new SqlCommand(mySelectQuery,myConn)
myConn.Open();
SqlDataReader myReader = myComm.ExecuteReader();

Catch ex As Exception

'capturamos el error

End Try

PREGUNTA:
¿Es posible saber en el código dentro CATCH, que la SQL
que se intentó ejecutar fue "SELECT OrderID, CustomerID
FROM Orders"?

Dicho de otra forma, ¿cuando se genera SQLServer es
posible saber que última sentencia SQL estaba ejecutándose?

Gracias...

Preguntas similare

Leer las respuestas

#1 GastonQ
29/07/2004 - 04:28 | Informe spam
Hola, cuando se produce una excepción relacionada con SQL Server, se genera
una SqlException. Este tipo de excepción es bastante interesante y te brinda
algunas cosas interesantes como es la propiedad Number, que te permitirá
hacer una evaluación del error, LineNumber que te muestra la línea en donde
se produjo la excepción dentro de la sentencia Transact SQL, y otras que
deberás investigar.

Tu código debería ser de la siguiente manera:

...
Try
...código que se ejecuta sobre la base.
Catch sqlEx As SqlException
...capturar y evaluar el error (errores manejados que provienen de la base
de datos)
Catch ex As Exception
...errores no manejados (es decir, inesperados, que no tienen nada que ver
con la base de datos)
End Try

Saludos
Gaston Quirque
Microsoft MVP

"jaimito" escribió en el mensaje
news:5f3c01c474de$67dc2960$
Hola compañeros...

Teniendo un fragmento de código así (DE EJEMPLO!!!):

Try

mySelectQuery = "SELECT OrderID, CustomerID FROM Orders"
SqlConnection myConn = new SqlConnection(myConnString)
SqlCommand myComm = new SqlCommand(mySelectQuery,myConn)
myConn.Open();
SqlDataReader myReader = myComm.ExecuteReader();

Catch ex As Exception

'capturamos el error

End Try

PREGUNTA:
¿Es posible saber en el código dentro CATCH, que la SQL
que se intentó ejecutar fue "SELECT OrderID, CustomerID
FROM Orders"?

Dicho de otra forma, ¿cuando se genera SQLServer es
posible saber que última sentencia SQL estaba ejecutándose?

Gracias...
Respuesta Responder a este mensaje
#2 SqlRanger [MVP .NET]
29/07/2004 - 09:53 | Informe spam
Es posible obtener la última instrucción SQL que se envió en una conexión,
siempre que esta conexión esté abierta. Para ello hay que hacer lo
siguiente:

1) Cada vez que abramos una conexión obtener su SPID. Esto lo podemos hacer
ejecutando lo siguiente después de abrir la conexión:

SELECT @@SPID

Este spid lo guardamos para posterior uso

2) Abrir otra conexión y ejecutar:

DBCC INPUTBUFFER( <spid> )

Esto nos dará un conjunto de registros con tres campos, el último campo
contiene la última instrucción SQL ejecutada en la conexión que tiene el
spid dado.

Saludos:

Jesús López

MVP




"jaimito" escribió en el mensaje
news:5f3c01c474de$67dc2960$
Hola compañeros...

Teniendo un fragmento de código así (DE EJEMPLO!!!):

Try

mySelectQuery = "SELECT OrderID, CustomerID FROM Orders"
SqlConnection myConn = new SqlConnection(myConnString)
SqlCommand myComm = new SqlCommand(mySelectQuery,myConn)
myConn.Open();
SqlDataReader myReader = myComm.ExecuteReader();

Catch ex As Exception

'capturamos el error

End Try

PREGUNTA:
¿Es posible saber en el código dentro CATCH, que la SQL
que se intentó ejecutar fue "SELECT OrderID, CustomerID
FROM Orders"?

Dicho de otra forma, ¿cuando se genera SQLServer es
posible saber que última sentencia SQL estaba ejecutándose?

Gracias...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida