共用方式為


參數集合(Parameters Collection,ADO)

包含 Command 物件的所有 Parameter 物件。

備註

Command 物件具有由 Parameter 物件組成的 Parameters 集合。

Command 物件的 Parameters 集合上使用 Refresh 方法,會擷取 Command 物件中所指定預存程式或參數化查詢的提供者參數資訊。 某些提供者不支援預存過程調用或參數化查詢;使用這類提供者時,在 Parameters 集合上呼叫 Refresh 方法會傳回錯誤。

如果您尚未定義自己的 Parameter 物件,而且在呼叫 Refresh 方法之前存取 Parameters 集合,ADO 會自動呼叫 方法,併為您填入集合。

如果您知道與預存程式或您想要呼叫的參數化查詢相關聯的參數屬性,您可以將對提供者的呼叫降到最低,以改善效能。 使用 CreateParameter 方法來建立具有適當屬性設定的 Parameter 物件,並使用 Append 方法將它們新增至 Parameters 集合。 這可讓您設定和傳回參數值,而不需要呼叫提供者的參數資訊。 如果您要寫入未提供參數資訊的提供者,您必須使用此方法手動填入 Parameters 集合,才能完全使用參數。 如有必要,請使用Delete方法從Parameters集合中移除Parameter物件。

Recordset 關閉時,RecordsetParameters 集合中的物件會超出範圍(因此變得無法使用)。

使用 Command 呼叫預存程式時,會擷取預存程式的傳回值/輸出參數,如下所示:

  1. 呼叫沒有參數的預存程式時,應該先呼叫 Parameters 集合上的 Refresh 方法,再呼叫 Command 物件上的 Execute 方法。

  2. 使用 Parameters 呼叫預存程式,並使用 Append 明確地將參數附加至 Parameters 集合時,應該將傳回值/輸出參數附加至 Parameters 集合。 傳回值必須先附加至 Parameters 集合。 使用 Append ,以定義順序將其他參數新增至 Parameters 集合。 例如,預存程式 SPWithParam 有兩個參數。 第一個參數 InParam 是定義為 adVarChar (20) 的輸入參數,而第二個參數 OutParam 是定義為 adVarChar (20) 的輸出參數。 您可以使用下列程式代碼來擷取傳回值/輸出參數。

    ' Open Connection Conn  
    set ccmd = CreateObject("ADODB.Command")  
    ccmd.Activeconnection= Conn  
    
    ccmd.CommandText="SPWithParam"  
    ccmd.commandType = 4 'adCmdStoredProc  
    
    ccmd.parameters.Append ccmd.CreateParameter(, adInteger, adParamReturnValue, , NULL)   ' return value  
    ccmd.parameters.Append ccmd.CreateParameter("InParam", adVarChar, adParamInput, 20, "hello world")   ' input parameter  
    ccmd.parameters.Append ccmd.CreateParameter("OutParam", adVarChar, adParamOutput, 20, NULL)   ' output parameter  
    
    ccmd.execute()  
    
    ' Access ccmd.parameters(0) as return value of this stored procedure  
    ' Access ccmd.parameters("OutParam") as the output parameter of this stored procedure.  
    
    
  3. 使用參數呼叫預存程式,並在 Parameters 集合上呼叫 Item 方法來設定參數時,可以從 Parameters 集合擷取預存程式的傳回值/輸出參數。 例如,預存程式 SPWithParam 有兩個參數。 第一個參數 InParam 是定義為 adVarChar (20) 的輸入參數,而第二個參數 OutParam 是定義為 adVarChar (20) 的輸出參數。 您可以使用下列程式代碼來擷取傳回值/輸出參數。

    ' Open Connection Conn  
    set ccmd = CreateObject("ADODB.Command")  
    ccmd.Activeconnection= Conn  
    
    ccmd.CommandText="SPWithParam"  
    ccmd.commandType = 4 'adCmdStoredProc  
    
    ccmd.parameters.Item("InParam").value = "hello world" ' input parameter  
    ccmd.execute()  
    
    ' Access ccmd.parameters(0) as return value of stored procedure  
    ' Access ccmd.parameters(2) or ccmd.parameters("OutParam") as the output parameter.  
    

本節包含下列主題。

另請參閱

Append 方法 (ADO)
CreateParameter 方法 (ADO)
Parameter 物件