Как просмотреть последний запущенный SQL-запрос от поставщика данных SqlClient на Sql server 2000? - PullRequest
1 голос
/ 28 июля 2010

Хотя я смог увидеть последний запущенный запрос, который является хранимой процедурой, но я не получил значения параметров, с которыми вызывался SP.Вместо этого я получил следующее:

StoredProcedureName;1

из следующей команды:

DBCC INPUTBUFFER(SPID)

Где я получил SPID, просмотрев его в ObjectExplorer-> Management-> ActivityMonitor

Можно ли как-нибудь получить полный текст, включая параметры, с которыми был выполнен SP?

1 Ответ

1 голос
/ 28 июля 2010

Я знаю, что этот ответ может быть не тем, что вы ищете, так как на самом деле он не отвечает на ваш вопрос, я немного подумал и в конце концов подумал, что это может помочь.

Я не знаю, сколько у вас запросов и насколько велика ваша программа ... но для целей отладки я хотел сделать что-то похожее для всех моих запросов, как для простого текста, так и для хранимых процедур. Поэтому я написал простой класс-обертку, который позволяет мне выполнять простые текстовые запросы / хранимые процедуры с параметрами и без параметров. Затем, если выполняется исключение, я перехватываю его, создаю новое пользовательское исключение с исходным исключением, выполненным запросом и всеми параметрами и возвращаю все это в пользовательском сообщении. Я использую Oracle в своей оболочке, но она почти такая же:

Public Function ExecuteCommandQuery(ByRef oCMD As OracleClient.OracleCommand) As DataTable
    oCMD.Connection = _oConn

    Dim dt As New DataTable

    'exception if one occured'
    Dim DBException As Exception = Nothing

    Try
        'get an adapter'
        Dim cmd As New OracleDataAdapter(oCMD)
        'Fill the data table and ket a count of records returned'
        cmd.Fill(dt)

    Catch ex As Exception
        'capture exception, and rethrow after properly closing the Oracle Connection'
        DBException = ex
    Finally
        _oConn.Close()
    End Try

    'if exception occured, rethrow'
    If DBException IsNot Nothing Then
        Throw New Exception( _
            String.Format("A database error occured: {0} " + _
                          Environment.NewLine + Environment.NewLine + " --- " + _
                          Environment.NewLine + Environment.NewLine + _
                          " Your query: {1}" + _
                          Environment.NewLine + Environment.NewLine + " --- " + _
                          Environment.NewLine + Environment.NewLine + _
                          " Your Parameters: " + Environment.NewLine + "{2}" _
                          , DBException.ToString(), oCMD.CommandText, GenerateParameterErrorInfo(oCMD)))
    End If

    Return dt
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...