Tsql T-SQL CTE+;经典asp-使用哪种命令类型?

Tsql T-SQL CTE+;经典asp-使用哪种命令类型?,tsql,asp-classic,common-table-expression,Tsql,Asp Classic,Common Table Expression,我有一份CTE声明。当我尝试使用classic asp在中执行时,参数未正确替换: Set cmd=Server.CreateObject("ADODB.Command") cmd.ActiveConnection = objConnection cmd.CommandText = " my CTE is here" cmd.CommandType = adCmdText 'adCmdUnspecified,adCmdText,adCmdTable,adCmdStoredProc,adC

我有一份CTE声明。当我尝试使用classic asp在中执行时,参数未正确替换:

Set cmd=Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = objConnection
cmd.CommandText =   " my CTE is here"

cmd.CommandType = adCmdText

'adCmdUnspecified,adCmdText,adCmdTable,adCmdStoredProc,adCmdUnknown,adCmdFile,adCmdTableDirect

Set objParam = cmd.CreateParameter(, adBigInt , adParamInput ,8,CLng(MyParameter))
cmd.Parameters.Append objParam
当我得到最终语句时,语句中的“?”并没有被替换,它给了我错误


我尝试了每种命令类型,但没有结果。

问题是由“CommandText”字符串中愚蠢的语法错误引起的。

错误是。。。。?您考虑过存储过程吗?是的,这是一个自定义过程,无法应用存储过程。错误是“=”附近的语法不正确。因为在语句中,我用“…=?”代替“…=”1000'-参数未被替换。您使用的是什么DBMS?您可以使用命名参数而不是问号,如@SomeParameter,然后您的代码将是cmd.CreateParameter(“SomeParameter”,…)@Joro,您对错误消息的解释不正确。ADO不会用参数值替换参数占位符。相反,它将SQL语句(带?s)连同参数值一起发送到DBMS,DBMS将处理其余部分。SQL语句中还有一些其他语法错误。