次の方法で共有


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_MAPCOLUMN_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 のメンバーメソッド

複数回の適用

必要な属性

なし

無効な属性

なし

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

参照

その他の技術情報

OLE DB コンシューマー属性

クラス属性

Attributes Samples