VB6 + SQL-сервер. Как выполнить запрос с именованными параметрами с помощью ADODB.Command?
Я пытался выполнить параметризованный запрос с помощью ADODB.Command. Я знаю, что могу использовать & quot;? & Quot; для параметров, но мои запросы довольно большие, и я действительно не хочу отслеживать точный порядок параметров. Я попробовал что-то вроде следующего:
objCmd.CommandType = adCmdText
objCmd.CommandText = "SELECT ... WHERE field1=@p_Field1 ...."
Dim objParam As ADODB.Parameter
Set objParam = objCmd.CreateParameter("@p_Field1" ...)
objCmd.Parameters.Append objParam
...
objCmd.Open
Он работает для параметров хранимой процедуры (очевидно, установка CommandType = adCmdStoredProc), но я не могу сделать это внутри хранимой процедуры из-за динамической природы самого запроса. Когда я пытаюсь выполнить запрос, я получаю сообщение об ошибке:
Must declare the scalar variable "@p_Field1"
Есть ли какой-либо другой способ избежать этого, который не включает использование хранимых процедур или (argh) объединение значений параметров в самом запросе и не использует параметры вообще?