【问题标题】:View Parametrized Query In VBScript ADODB.Command在 VBScript ADODB.Command 中查看参数化查询
【发布时间】:2009-02-06 06:53:35
【问题描述】:

如何查看我的查询的 SQL 代码它已被 Parameters.Append 参数化

【问题讨论】:

    标签: sql asp-classic vbscript ado


    【解决方案1】:

    你不能。

    参数化查询不像字符串那样构建,您可以在准备好后输出。

    这总是一个两步的过程:

    1. 在“SELECT foo FROM foo_table WHERE id = ?”的 from 中准备一个查询,将其发送到服务器(并返回一个标识符)。
    2. 将填写问号的所有参数连同准备好的语句的标识符一起发送到服务器。

    这两者(查询和参数)在任何时候都不会在数据库服务器之外取得联系。 (这就是参数化查询比手工制作的 SQL 字符串更安全的原因。

    【讨论】:

    • 感谢您的信息! :-) ASP 可能很蹩脚。
    • 与ASP无关。这是参数化查询的一般方式。
    【解决方案2】:

    您可以编写一些简单的代码,通过循环遍历参数来解析结果。这是一个 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。我发现这对调试很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      相关资源
      最近更新 更多