Parameters 集合 (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. 呼叫具有參數的預存程序,並使用 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 物件