db_column
行セットの変数に指定した列をバインドします。
[ db_column(
ordinal,
dbtype,
precision,
scale,
status,
length
) ]
パラメーター
ordinal
順序の行数 DBCOLUMNINFO (序数) または行セットの種類に対応する項目の名前 (ANSI 形式または Unicode 文字列) データをバインドする。数値を使用すると実行中の序数をスキップできます (例 : 1235)。名前はOLE DB プロバイダーがサポートを使用して空白が含まれている場合があります。たとえば次の形式のいずれかを使用できます :[db_column("2")] TCHAR szCity[30]; [db_column(L"city_name")] TCHAR szCity[30];
dbtype (省略可能)
列のエントリの OLE DB インジケーター型。精密 (省略可能)
列のエントリに使用される精度。詳細についてはDBBINDING 構造 の bPrecision の要素の説明を参照してください。スケール (省略可能)
列のエントリに使用するスケール。詳細についてはDBBINDING 構造 の bScale の要素の説明を参照してください。状態 (省略可能)
この列の状態を保持するメンバー変数。状態は列の値がデータ値またはそのほかの値であるかを示します null など)。有効な値については" OLE DB Programmer's Reference " の 状態 を参照してください。長さ (省略可能)
バイト列のサイズを保持するメンバー変数。
解説
db_column は行セットの変数に指定したテーブルの列をバインドします。これは OLE DB IAccessor のベースのバインディングに含めることができるメンバーのデータを区切ります。この属性はOLE DB コンシューマー BEGIN_COLUMN_MAPマクロ END_COLUMN_MAP と COLUMN_ENTRY を使用して定義された列マップを作成します。これらは指定された列をバインドする OLE DB DBBINDING 構造 を処理します。db_column属性でマークする各メンバーは列のエントリの形式で列マップの 1 エントリを使用します。このためコマンド クラスまたはテーブルに列をマップするつまりこの属性を呼び出します。
db_table または db_command 属性とともに db_column を使用します。
コンシューマー属性プロバイダーがクラスにこの属性を適用するとコンパイラは YourClassName はクラスを受け取るとコンパイラは_YourClassNameAccessor から派生 YourClassName と いうクラスを作成する名前です _YourClassNameAccessor にクラスの名前を変更します。[クラス ビュー] でこれらのクラスを参照してください。
アプリケーションで使用するこの属性の例についてはサンプル AtlAgentMultiRead を参照してください。
使用例
この例では long データ メンバーにテーブルの列をバインドしステータスと長さのフィールドを指定します。
// db_column_1.cpp
// compile with: /LD
#include <atlbase.h>
#include <atlplus.h>
#include <atldbcli.h>
[ db_command(L"Select * from Products") ]
class CProducts {
DBSTATUS m_dwProductIDStatus;
DBLENGTH m_dwProductIDLength;
[ db_column("1", status="m_dwProductIDStatus", length="m_dwProductIDLength") ] LONG m_ProductID;
};
このサンプルでは順序で long文字列タイムスタンプおよび DB_NUMERIC の整数を 4 列をバインドします。
// db_column_2.cpp
// compile with: /LD
#include <atlbase.h>
#include <atlplus.h>
#include <atldbcli.h>
[ db_command(L"Select * from Products") ]
class CProducts {
[db_column("1")] LONG m_OrderID;
[db_column("2")] TCHAR m_CustomerID[6];
[db_column("4")] DB_NUMERIC m_OrderDate;
[db_column("7", dbtype="DBTYPE_NUMERIC")] DB_NUMERIC m_ShipVia;
};
必要条件
属性コンテキスト
対象 |
クラス struct のメンバーメソッド |
複数回の適用 |
X |
必要な属性 |
なし |
無効な属性 |
なし |
属性コンテキストの詳細については、「属性コンテキスト」を参照してください。