Command 物件 (ADO)

定義您想要針對資料來源執行的特定命令。

備註

使用 Command 物件查詢資料庫,並傳回 Recordset (英文) 物件中的記錄、執行大量作業,或操作資料庫的結構。 根據提供者的功能,某些 Command 集合、方法或屬性可能會在參考時產生錯誤。

使用 Command 物件的集合、方法與屬性,您可以執行下列動作:

  • 使用 CommandText (英文) 屬性定義命令的可執行文字 (例如 SQL 陳述式)。 或者,針對簡單字串以外的命令或查詢結構 (例如 XML 範本查詢) 使用 CommandStream (部分機器翻譯) 屬性定義命令。

  • 選擇性地使用 Dialect (部分機器翻譯) 屬性,指出 CommandTextCommandStream 中使用的命令方言。

  • 使用 Parameter (部分機器翻譯) 物件與 Parameters (部分機器翻譯) 集合定義參數化查詢或預存程序引數。

  • 使用 NamedParameters (部分機器翻譯) 屬性指出是否應該將參數名稱傳遞至提供者。

  • 視需要使用 Execute (部分機器翻譯) 方法執行命令並傳回 Recordset 物件。

  • 在執行最佳化效能之前,使用 CommandType (部分機器翻譯) 屬性指定命令類型。

  • 在執行之前,使用 Prepared (部分機器翻譯) 屬性控制提供者是否會儲存命令的已備妥 (或已編譯) 版本。

  • 使用 CommandTimeout (部分機器翻譯) 屬性設定提供者將等候命令執行的秒數。

  • 透過設定Command 物件的 ActiveConnection (部分機器翻譯) 屬性,將開啟的連線與其建立關聯。

  • 設定 Name (部分機器翻譯) 屬性將 Command 物件識別為相關聯 Connection (部分機器翻譯) 物件上的方法。

  • Command 物件傳遞至 RecordsetSource (部分機器翻譯) 屬性以取得資料。

  • 使用 Properties (部分機器翻譯) 集合存取提供者特定的屬性。

注意

若要在不使用 Command 物件的情況下執行查詢,請將查詢字串傳遞至 Connection 物件的 Execute (部分機器翻譯) 方法,或是傳遞至 Recordset 物件的 Open (部分機器翻譯) 方法。 不過,當想要保存命令文字並重新執行,或使用查詢參數時,您將需要 Command 物件。

若要獨立於先前定義的 Connection 物件建立 Command 物件,請將其 ActiveConnection 屬性設定為有效的連接字串。 ADO 仍然會建立 Connection 物件,但不會將該物件指派給物件變數。 不過,如果您要將多個 Command 物件與相同的連線建立關聯,您應該明確地建立並開啟 Connection 物件;這會將 Connection 物件指派給物件變數。 在您將 Connection 物件指派給 Command 物件的 ActiveConnection 屬性之前,請確定已成功開啟 Connection 物件,因為指派關閉的 Connection 物件會造成錯誤。 如果您未將 Command 物件的 ActiveConnection 屬性設定至此物件變數,ADO 會為每個 Command 物件建立新的 Connection 物件,即使您使用相同的連接字串也一樣。

若要執行 Command,請在相關聯的 Connection 物件上依其 Name (部分機器翻譯) 屬性加以呼叫。 Command 必須將其 ActiveConnection 屬性設定為 Connection 物件。 如果 Command 有參數,請將其值作為引數傳遞至方法。

如果在相同的連線上執行二或多個 Command 物件,而 Command 物件是具有輸出參數的預存程序,就會發生錯誤。 若要執行每個 Command 物件,請使用個別連線,或中斷所有其他 Command 物件的連線。

Parameters 集合是 Command 物件的預設成員。 因此,下列兩個程式碼陳述式是相等的。

objCmd.Parameters.Item(0)  
objCmd(0)  
  • Command 物件對於指令碼而言並不安全。

此節包含下列主題。

另請參閱

Connection 物件 (ADO)
Parameters 集合 (ADO)
Properties 集合 (ADO)
附錄 A:提供者