次の方法で共有


db_table

OLE DB テーブルを開きます。

[ db_table( 
      db_table, 
   name, 
   source_name, 
   hresult 
) ]

パラメータ

  • db_table
    データベース テーブル名 ("Products" など) を指定する文字列。

  • name (省略可能)
    テーブルの操作に使用するハンドルの名前。複数の結果行を返す場合は、このパラメータを指定する必要があります。指定した name を持つ変数が db_table によって生成され、行セットの走査や複数のアクション クエリの実行に使用できます。

  • source_name (省略可能)
    実行するコマンドの対象となる属性 db_source が適用された CSession 変数またはクラスのインスタンス。「db_source」を参照してください。

  • hresult (省略可能)
    データベース コマンドの HRESULT を受け取る変数を識別する値。変数が存在しない場合は、属性によって自動的に挿入されます。

解説

db_table は、テーブルを開くために OLE DB コンシューマが使用する CTable オブジェクトを作成します。この属性が使用できるのはクラス レベルだけです。インラインでは使用できません。db_column を使用してテーブルの列を変数に連結し、db_param を使用してパラメータの型などを設定し、パラメータを区切ります。

コンシューマ属性プロバイダがこの属性をクラスに適用すると、コンパイラはクラスの名前を _YourClassNameAccessor (YourClassName はクラスの名前) に変更します。さらに、コンパイラは、_YourClassName から派生した YourClassName という名前のクラスを生成します。クラス ビューに両方のクラスが表示されます。

使用例

CProducts で使用する Products テーブルを開く例を次に示します。

// db_table.cpp
// compile with: /LD
#include <atlbase.h>
#include <atlplus.h>
#include <atldbcli.h>

[ db_table(L"dbo.Products") ]
class CProducts {
   [ db_column("1") ] LONG m_ProductID;
};

この属性のアプリケーションでの使用例については、AtlAgent サンプルおよび MultiRead サンプルを参照してください。

必要条件

属性コンテキスト

対象

class、struct

複数回の適用

不可

必要な属性

なし

無効な属性

なし

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

参照

概念

OLE DB コンシューマ属性

ATL サンプル