db_column
指定した列を行セットの変数に連結します。
[ db_column(
ordinal,
dbtype,
precision,
scale,
status,
length
) ]
パラメータ
ordinal
データを連結する行セット内のフィールドに対応する序数列番号 (DBCOLUMNINFO 序数) または列名 (ANSI 文字列または Unicode 文字列)。番号を使用する場合は、連続した序数 (1、2、3、5 など) をスキップできます。使用する OLE DB プロバイダでサポートされる場合は、列名にスペースを含めることができます。たとえば、次のいずれかの書式を使用できます。[db_column("2")] TCHAR szCity[30]; [db_column(L"city_name")] TCHAR szCity[30];
dbtype (省略可能)
列エントリの OLE DB Type Indicator。precision (省略可能)
列エントリに使用する有効桁数。詳細については、「DBBINDING Structures」の bPrecision 要素の説明を参照してください。scale (省略可能)
列エントリに使用する小数部桁数。詳細については、「DBBINDING Structures」の bScale 要素の説明を参照してください。status (省略可能)
この列のステータスを保持するメンバ変数。ステータスは、列の値がデータ値であるか、NULL などのその他の値であるかを示します。ステータス値の詳細については、『OLE DB Programmer's Reference』の「Status」を参照してください。length (省略可能)
列サイズのバイト数を保持するメンバ変数。
解説
db_column は指定したテーブル列を行セットの変数に連結します。この属性は、OLE DB の IAccessor ベースの連結に関連するメンバ データを区切ります。この属性は、BEGIN_COLUMN_MAP、END_COLUMN_MAP、COLUMN_ENTRY の各 OLE DB コンシューマ マクロを使用して定義された列マップを設定します。これらのマクロで OLE DB DBBINDING 構造体を操作して、指定した列を連結します。属性 db_column を設定した各メンバは、列エントリの形式で列マップの 1 つのエントリになります。したがって、列マップを配置する位置、つまりコマンド クラスまたはテーブル クラスでこの属性を呼び出します。
db_column は、db_table または db_command のいずれかの属性と組み合わせて使用します。
コンシューマ属性プロバイダがこの属性をクラスに適用すると、コンパイラはクラスの名前を _YourClassNameAccessor (YourClassName はクラスの名前) に変更します。さらに、コンパイラは、_YourClassName から派生した YourClassName という名前のクラスを生成します。クラス ビューに両方のクラスが表示されます。
この属性のアプリケーションでの使用例については、AtlAgent サンプルおよび MultiRead サンプルを参照してください。
使用例
このサンプルでは、テーブルの列を長整数型 (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;
};
必要条件
属性コンテキスト
対象 |
class、struct、メンバ、メソッド |
複数回の適用 |
不可 |
必要な属性 |
なし |
無効な属性 |
なし |
属性コンテキストの詳細については、「属性コンテキスト」を参照してください。