次の方法で共有


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_MAPEND_COLUMN_MAPCOLUMN_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、メンバ、メソッド

複数回の適用

不可

必要な属性

なし

無効な属性

なし

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

参照

概念

OLE DB コンシューマ属性

クラス属性

ATL サンプル