2011-09-22 42 views
0

我試圖在ASP頁面中的Access數據庫中運行一些存儲的查詢。我想使用ADO Command對象來運行該過程,而不是簡單地向數據庫發送字符串來執行。當我嘗試創建發送到存儲過程的參數時,發生了我的問題。我正在使用Command對象的'CreateParameter'方法。它需要5個可選參數,其中我只想使用兩個;名稱和值(分別爲參數1和5)。在傳統ASP中傳遞可選參數用於存儲過程

我已經嘗試以下方法來設置參數:

1)使用命名參數

command.Parameters.Append command.CreateParameter name:="name", value:="value" 

2)用括號內

command.Parameters.Append command.CreateParameter(name:="name", value:="value") 

3命名參數)離開我不需要

command.Parameters.Append command.CreateParameter("name", , , , "value") 

什麼是簡單的方法來實現我想要做的事情,以及爲什麼我的語法在這些情況下失敗?我顯然在這裏錯過了一些東西!

回答

2

VBScript不支持帶或不帶括號命名參數。 Command對象的CreateParameter方法需要通過的所有參數(特定或空白)。

對於問題的第3節,看看:

CreateParameter(
name`[optional],        <- fits ("name") 
type [optional, default = adEmpty],   <- NOT fits (type is not empty) 
direction[Optional default = adParamInput], <- fits (blank) 
size [optional default = 0],     <- NOT fits (at least 5 for "value") 
value[optional]        <- fits ("value") 
) 

所以,你應該指定值參數文本至少類型和尺寸。方向已經是adParamInput

Const adVarChar = 200 ' From adovbs.inc or Ado TypeLib 
command.Parameters.Append command.CreateParameter("name", adVarChar, , 5, "value") 
+0

CreateParameter是ADO的一部分,而不是VBScript。看到http://msdn.microsoft.com/en-us/library/ms677209%28VS.85%29.aspx – Dee

+0

我說過這樣的事情? Command對象的CreateParameter方法是什麼意思?我所說的關於vbscript和參數與ADO無關。僅適用於VBScript。 –

0

這裏是一個可以遵循的例子。

http://www.webconcerns.co.uk/asp/accessqueries/accessqueries.asp

http://bytes.com/topic/asp-classic/answers/628368-running-access-stored-queries-parameters

看到記住訪問使用沒有存儲過程的存儲查詢,以一定的差異適用。有關更多信息,搜索

ASP使用參數訪問存儲的查詢 - .NET

+0

謝謝,我不知道他們只存儲查詢,而不是程序。存儲過程是否給你更多的靈活性?例如。 PL-SQL? –

+0

這裏討論的差異很好:http://social.msdn.microsoft.com/forums/en-US/architecturegeneral/thread/c6864235-5645-4632-93be-15d4d9bd286d/。您也可以搜索:存儲過程vs存儲的查詢 – Dee

相關問題