次の方法で共有


db_source

データ ソースへの接続を作成します。

[ db_source( 
      db_source, 
   name, 
   hresult 
) ]

パラメータ

  • db_source
    データ ソースとの接続に使用する接続文字列。接続文字列の書式については、『OLE DB Programmer's Reference』の「Connection Strings and Data Links」を参照してください。

  • name (省略可能)
    db_source をクラスで使用する場合、name は属性 db_source が適用されたデータ ソース オブジェクトのインスタンスです。例 1 を参照してください。メソッド実装で db_source をインラインで使用する場合、name はメソッドに対してローカルな変数であり、データ ソースへのアクセスに使用できます。例 2 を参照してください。namedb_command の source_name パラメータに渡して、データ ソースとコマンドを関連付けます。

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

解説

db_source は、CDataSource および CSession オブジェクトを作成します。これらのオブジェクトの組み合わせて、OLE DB コンシューマ データ ソースとの接続を表します。

db_source をクラスで使用すると、CSession オブジェクトは使用したクラスのメンバになります。

db_source をメソッドで使用すると、挿入されたコードはメソッド スコープ内で実行され、CSession オブジェクトはローカル変数として作成されます。

db_source はデータ ソースのプロパティをクラスまたはメソッド内に追加します。db_sourcedb_command と組み合わせて使用します。db_commanddb_sourcename パラメータを source_name パラメータとして使用します。

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

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

使用例

このサンプルでは、db_source をクラスで呼び出し、Northwind データベースを使用するデータ ソース ds への接続を作成します。ds は、CMyCommand クラスに対して内部的に使用できる、データ ソースのハンドルです。

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

[
  db_source(L"my_connection_string", name="ds"),
  db_command(L"select * from Products")
]
class CMyCommand {};

必要条件

属性コンテキスト

対象

class、struct、メンバ、メソッド、ローカル

複数回の適用

不可

必要な属性

なし

無効な属性

なし

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

参照

概念

OLE DB コンシューマ属性

ATL サンプル