次の方法で共有


db_param

指定したメンバー変数を入力または出力パラメーターに関連付け変数を区切ります。

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

パラメーター

  • ordinal
    行セットの種類に対応する行数 DBCOLUMNINFO (序数) データをバインドする。

  • paramtype (省略可能)
    パラメーターに対して設定する型。プロバイダーは基になるデータ ソースによってサポートされるパラメーターの I/O 型のみをサポートします。型は DBPARAMIOENUM の一つまたは複数の値の組み合わせです :

    • DBPARAMIO_INPUT  入力パラメーター。

    • DBPARAMIO_OUTPUT  出力パラメーター。

    • DBPARAMIO_NOTPARAM にアクセサーパラメーターはありません。パラメーターを無視して行のアクセサーでこの値に設定 eParamIO はを示します。

  • dbtype (省略可能)
    列のエントリの OLE DB インジケーター型

  • 精密 (省略可能)
    列のエントリに使用される精度。詳細についてはDBBINDING 構造bPrecision の要素の説明を参照してください。

  • スケール (省略可能)
    列のエントリに使用するスケール。詳細についてはDBBINDING 構造bScale の要素の説明を参照してください。

  • 状態 (省略可能)
    この列の状態を保持するメンバー変数。状態は列の値がデータ値またはそのほかの値であるかを示します null など)。有効な値については" OLE DB Programmer's Reference " の 状態 を参照してください。

  • 長さ (省略可能)
    バイト列のサイズを保持するメンバー変数。

解説

db_param はコマンドで使用するパラメーターを定義します ; したがって db_command で使用できます。たとえばSQL クエリまたはスト プロシージャのパラメーターにバインド db_param を使用できます。スト プロシージャのパラメーターは疑問符 () が表示されパラメーターの順序でデータ メンバーをバインドする必要があります。

db_param はOLE DB ICommandWithParameters のベースのバインディングに含めることができるメンバーのデータを区切ります。このメソッドはパラメーターの型 () の入力または出力指定したパラメーターの型はOLE DB の精度スケーリングステータスおよび長さを設定します。この属性はOLE DB コンシューマー BEGIN_PARAM_MAP マクロを…END_PARAM_MAP.db_param属性でマークする各メンバーはCOLUMN_ENTRY の形式でマップ 1 エントリを使用します。

db_paramdb_table または db_command 属性とともに使用されます。

コンシューマー属性プロバイダーがクラスにこの属性を適用するとコンパイラは YourClassName はクラスを受け取るとコンパイラは_YourClassNameAccessor から派生 YourClassName と いうクラスを作成する名前です _YourClassNameAccessor にクラスの名前を変更します。[クラス ビュー] でこれらのクラスを参照してください。

使用例

次の例ではNorthwind データベースの SalesbyYear ストのプロシージャに基づいてコマンド クラスを作成します。これは m_RETURN_VALUE の変数とスト プロシージャの最初のパラメーターを関連付け出力パラメーターを定義します。これは m_Beginning_Date と m_Ending_Date と最後の 2 回の入力パラメーター () を関連付けます。

次の例では出力パラメーターと 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;
};

必要条件

属性コンテキスト

対象

クラス struct のメンバーはローカル メソッド

複数回の適用

必要な属性

なし

無効な属性

なし

属性コンテキストの詳細については、「属性コンテキスト」を参照してください。

参照

その他の技術情報

OLE DB コンシューマー属性

Attributes Samples