如何使用VBScript在ADO中将字符串参数传递给命令对象

如何使用VBScript在ADO中将字符串参数传递给命令对象,vbscript,ado,query-parameters,Vbscript,Ado,Query Parameters,我有一个函数,它返回SQL查询的一部分 Function GetYQConditions(command, startYQ, endYQ) Dim strSql strSql = " AND yq>=? and yq<=?" command.Parameters.Append(command.CreateParameter(undefined, 200, 1, 61, startYQ)) command.Parameters.Append(comm

我有一个函数,它返回SQL查询的一部分

Function GetYQConditions(command, startYQ, endYQ)
    Dim strSql

    strSql = " AND yq>=? and yq<=?"

    command.Parameters.Append(command.CreateParameter(undefined, 200, 1, 61, startYQ))
    command.Parameters.Append(command.CreateParameter(undefined, 200, 1, 61, endYQ))

    GetYQConditions = strSql    
End Function

问题:问题是yq>=?而yq='startYQ'和yq我想你要做的是:

Function GetYQConditions(command, startYQ, endYQ)
    Dim strSql

    strSql = " AND yq>=? and yq<=?"
    startYQ = "'" & startYQ & "'"
    endYQ = "'" & endYQ & "'"

    command.Parameters.Append(command.CreateParameter(undefined, 200, 1, 61, startYQ))
    command.Parameters.Append(command.CreateParameter(undefined, 200, 1, 61, endYQ))

    GetYQConditions = strSql    
End Function

您试图将startYQ和endYQ的值传递给strSql?是的。值类似于startYQ=2014Q1,但我需要startYQ='2014Q1'。您的示例代码说yq>=而不是startYQ=?您是要更新字符串strSql还是要更新变量startYQ和endYQ?显然,问号应该被变量的值替换。我正在更新字符串strSql。明白了,我更新了我的答案。事实上,你以前的答案更正确,因为我正在尝试参数化查询,而不是动态查询你的当前答案,以避免SQL注入。那么它能工作吗?我看到您正在传递到一个存储过程,只是不清楚您希望它如何运行。作为一个新手,我想我确实缺少一个很好的解释来解释我在寻找什么。然而,它确实起了作用。谢谢