Параметризованный запрос vBScript — для одного или нескольких обязательных параметров не задано значение

Я пытаюсь создать параметризованный запрос в vBScript. Код выглядит следующим образом:

flow_order_volume(idx) = arr(0)
msgbox flow_order_volume(idx) 
cmd.CommandText = "UPDATE NOMIMPORT.dbo.tblNOMIMPORT SET FlowOrderVolume = ?, FlowOrderMMBTU = 30, NomVolume = 40, NomMMBTU = 50 WHERE FullName= 'TEXT'"
Set param = cmd.CreateParameter("floworder",adNumeric,,2000,flow_order_volume(idx))
msgbox param
Set adoCMD = CreateObject("ADODB.Command")
cmd.Parameters.Append param
cmd.ActiveConnection = objConnection
objRecordSet.Open cmd

Каждый раз, когда я использую окно сообщения для печати значения переменной, оно возвращает «2», что и должно быть. Но затем я получаю следующую ошибку:

No value given for one or more required parameters.

Я не понимаю, почему это так, если переменная param показывает правильное число при печати. Тип данных этого столбца для базы данных — «числовой (10, 5)».

Я также попытался изменить значение flow_order_volume(idx) на статическое число только для устранения неполадок, и возникла та же проблема. Если я жестко запрограммирую значение в операторе обновления, оператор обновления работает нормально.

Оставил часть моего кода и исправил опечатку. Новое сообщение об ошибке, которое я получаю:

Parameter object improperly defined. Inconsistent or incomplete information was provided.

person bad_param    schedule 29.04.2015    source источник


Ответы (1)


Для числовых типов данных вам также необходимо определить масштаб и точность:

Set prm = cmd.CreateParameter(Name, Type, Direction, Size, Value)
prm.Precision = numberOfDigits
prm.NumericScale = numberOfDecimalPlace

Дополнительные сведения о других типах данных см. здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/ms677209%28v=vs.85%29.aspx

person Jen R    schedule 29.04.2015