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、メンバー、メソッド |
複数回の適用 |
不要 |
必要な属性 |
[なし] |
無効な属性 |
[なし] |
属性コンテキストの詳細については、「属性コンテキスト」を参照してください。