db_param

將指定的成員變數與輸入或輸出參數產生關聯,並分隔變數。

語法

[ db_param(ordinal, paramtype="DBPARAMIO_INPUT", dbtype, precision, scale, status, length) ]

參數

序數
數據行編號 (DBCOLUMNINFO 序數)對應至要系結數據之數據列集中的欄位。

paramtype
(選擇性)要為參數設定的類型。 提供者僅支援基礎數據源所支援的參數 I/O 類型。 此類型是一或多個 DBPARAMIOENUM 值的組合:

  • DBPARAMIO_INPUT :輸入參數。

  • DBPARAMIO_OUTPUT :輸出參數。

  • DBPARAMIO_NOTPARAM :存取子沒有參數。 在數據列存取子中設定 eParamIO 為此值,會提醒使用者忽略參數。

dbtype
(選擇性)數據行專案的 OLE DB 類型指標

有效位數
(選擇性)要用於數據行專案的有效位數。 如需詳細資訊,請參閱 DBBINDING 結構的專案描述bPrecision

scale
(選擇性)要用於數據行項目的尺規。 如需詳細資訊,請參閱 DBBINDING 結構的專案描述bScale

status
(選擇性)用來保存此數據行狀態的成員變數。 狀態會指出數據行值是數據值或某些其他值,例如NULL。 如需可能的值,請參閱 OLE DB 程式設計人員參考中的狀態

length
(選擇性)用來以位元組為單位保存資料行大小的成員變數。

備註

db_param會定義您在命令中使用的參數,因此您會將其與 搭配db_command使用。 例如,您可以使用 db_param 系結 SQL 查詢或預存程式中的參數。 預存程式中的參數是以問號 (?) 表示,您應該依照參數出現的順序系結數據成員。

db_param會分隔可以參與 OLE DB ICommandWithParameters型系結的成員數據。 它會設定指定參數的參數類型(輸入或輸出)、OLE DB 類型、有效位數、小數位數、狀態和長度。 這個屬性會在 ... BEGIN_PARAM_MAP插入 OLE DB 消費者宏...END_PARAM_MAP。 您使用 db_param 屬性標記的每個成員都會以COLUMN_ENTRY的形式佔用地圖中的一個專案。

db_param會與db_tabledb_command屬性搭配使用。

當取用者屬性提供者將這個屬性套用至類別時,編譯程式會將類別重新命名為 _YourClassName 存取子,其中 YourClassName 是您提供類別的名稱,編譯程式也會建立名為 YourClassName的類別,其衍生自 _YourClassName 存取子。 在 [類別] 檢視中,您會看到這兩個類別。

範例

下列範例會根據 Northwind 資料庫中的 SalesbyYear 預存程式建立命令類別。 它會將預存程式中的第一個參數與 m_RETURN_VALUE 變數產生關聯,並將它定義為輸出參數。 它會將最後兩個 (輸入) 參數與 m_Beginning_Datem_Ending_Date產生關聯。

下列範例會將 nOutput 變數與輸出參數產生關聯。

// db_param.cpp
// compile with: /LD
#include <atlbase.h>
#include <atlplus.h>
#include <atldbcli.h>

[ db_source(L"my_connection_string"),
  db_command(L"{ ? = CALL dbo.\"Sales by Year\"(?,?) }")
]
struct CSalesbyYear {
   DBSTATUS m_dwShippedDateStatus;
   DBSTATUS m_dwOrderIDStatus;
   DBSTATUS m_dwSubtotalStatus;
   DBSTATUS m_dwYearStatus;

   DBLENGTH m_dwShippedDateLength;
   DBLENGTH m_dwOrderIDLength;
   DBLENGTH m_dwSubtotalLength;
   DBLENGTH m_dwYearLength;

   // Bind columns
   [ db_column("1", status="m_dwShippedDateStatus", length="m_dwShippedDateLength") ] DBTIMESTAMP m_ShippedDate;
   [ db_column("2", status="m_dwOrderIDStatus", length="m_dwOrderIDLength") ] LONG m_OrderID;
   [ db_column("3", status="m_dwSubtotalStatus", length="m_dwSubtotalLength") ] CURRENCY m_Subtotal;
   [ db_column("4", status="m_dwYearStatus", length="m_dwYearLength") ] TCHAR m_Year[31];

   // Bind parameters
   [ db_param("1", paramtype="DBPARAMIO_OUTPUT") ] LONG m_RETURN_VALUE;
   [ db_param("2", paramtype="DBPARAMIO_INPUT") ] DBTIMESTAMP m_Beginning_Date;
   [ db_param("3", paramtype="DBPARAMIO_INPUT") ] DBTIMESTAMP m_Ending_Date;
};

需求

屬性內容
適用於 class、、 struct成員、方法、本機
可重複 No
必要屬性
無效屬性

如需有關屬性內容的詳細資訊,請參閱 屬性內容

另請參閱

OLE DB 消費者屬性