Último error

28/07/2004 - 22:20 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...
 

Leer las respuestas

#1 Sergio Florez M.
28/07/2004 - 22:25 | Informe spam
Puedes capturar un SqlException en vez de simplemente un Exception y
trabajar con la informacion detallada que entrega. Aqui te va un ejemplo
tomado de MSDN:

Public Sub ShowSqlException()
Dim mySelectQuery As String = "SELECT column1 FROM table1"
Dim myConnection As New SqlConnection ("Data
Source=localhost;Integrated Security=SSPI;Initial Catalog=Sample;")
Dim myCommand As New SqlCommand(mySelectQuery, myConnection)

Try
myCommand.Connection.Open()
Catch e As SqlException
Dim errorMessages As String
Dim i As Integer

For i = 0 To e.Errors.Count - 1
errorMessages += "Index #" & i.ToString() &
ControlChars.NewLine _
& "Message: " & e.Errors(i).Message &
ControlChars.NewLine _
& "LineNumber: " & e.Errors(i).LineNumber &
ControlChars.NewLine _
& "Source: " & e.Errors(i).Source &
ControlChars.NewLine _
& "Procedure: " & e.Errors(i).Procedure &
ControlChars.NewLine
Next i

Dim log As System.Diagnostics.EventLog = New
System.Diagnostics.EventLog()
log.Source = "My Application"
log.WriteEntry(errorMessages)
Console.WriteLine("An exception occurred. Please contact your system
administrator.")
End Try
End Sub

Sergio Florez M.
Miembro activo www.AlianzaDev.net
El que persevera insiste
Medellín, Colombia


"jaimito" escribió en el mensaje
news:619101c474e0$511f0420$
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 similares