Просмотр параметризованного запроса в VBScript ADODB.Command - PullRequest
2 голосов
/ 06 февраля 2009

Как просмотреть код SQL моего запроса после того, как был параметризован Parameters.Append

Ответы [ 2 ]

3 голосов
/ 06 февраля 2009

Вы не можете.

Параметризованные запросы не строятся как строки, которые вы можете вывести, когда будете готовы.

Это всегда двухэтапный процесс:

  1. Подготовьте запрос в поле "SELECT foo FROM foo_table WHERE id =?", Отправьте его на сервер (и верните идентификатор).
  2. Отправьте все параметры для заполнения вопросительных знаков на сервер вместе с идентификатором подготовленного утверждения.

В любой момент времени оба (запрос и параметры) выходят на связь вне сервера базы данных. (Это причина, почему параметризованные запросы намного более безопасны, чем строки SQL, сделанные вручную).

0 голосов
/ 18 апреля 2018

Вы можете написать некоторый простой код для анализа результатов по моде, просматривая параметры. Вот пример VBScript / Classic ASP:

        queryPlain = command.CommandText
        For Each p In command.Parameters
           If (p.type = adChar) or (p.type = adBSTR) or (p.type = adDBDate) Then
                queryPlain = Replace(queryPlain , "?", "'" & p.value & "'",1,1)
            Else
                queryPlain = Replace(queryPlain , "?", p.value,1,1)
            End If
        Next

Вот что-то похожее для VB.net

        queryPlain = command.CommandText
        For Each p As SqlParameter In command.Parameters
            queryPlain = queryPlain.Replace(p.ParameterName, p.Value.ToString())
        Next

Теперь queryPlain содержит SQL, включая параметры. Я считаю это полезным для целей отладки.

...