2013-03-22 37 views
0

下面是一個典型的ASP應用程序我的VBScript代碼:Parameter對象未正確定義

Set newParam = command.CreateParameter(Name, ParamType, 1) 
    newParam.Value = Value 
    command.Parameters.Append(newParam) 
    command.Parameters(Name) = Value 

的「追加」線始終與下面的錯誤打破:

enter image description here

似乎無論命令是否具有有效的活動連接或連接是否打開(連接到Oracle數據庫),都沒有區別。

'Name','ParamType'和'Value'參數值是正確的。

缺什麼?或者可能是錯的?

感謝

+0

不需要第二行(newParam.Value = Value) – AardVark71 2013-03-22 14:44:39

+0

「ParamType」的值究竟是什麼?您沒有指定大小,這對於您選擇的數據類型可能是必需的。 – 2013-03-23 04:12:47

+0

而不是'command.Parameters.Append'你認爲'command.Parameters.Refresh'?這可以爲你節省很多的努力。 – 2013-03-24 20:39:41

回答

2

Append指令刪除括號。在這種情況下,它們的含義是「按值傳遞參數」,而不是「參數列表」(請參閱​​this article)。還要在參數分配後放置值分配。

Set newParam = command.CreateParameter(Name, ParamType, 1) 
command.Parameters.Append newParam 
newParam.Value = Value 

你還在收到Append指令的錯誤嗎?如果是這樣,你的論點有所不同,請注意NameParamType

+0

在調用Subs時刪除括號是一般的好建議,但我不確定它在這裏有什麼不同。無論您是傳遞參數ByVal還是ByRef,它仍然是對同一個Parameter對象的引用。 – 2013-03-23 04:21:17

+0

@CheranShunmugavel很可能它沒有什麼區別(當我用一些樣本值進行測試時,它並沒有發生變化),但是我仍然會將它們刪除,只是爲了安全起見。 – 2013-03-23 12:23:05