次の方法で共有


db_source

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

構文

[ db_source(db_source, name, hresult) ]

パラメーター

db_source
データ ソースへの接続に使用される接続文字列。 接続文字列の形式については、Microsoft Data Access Components (MDAC) SDK で接続文字列とデータ リンクに関する記事を参照してください。

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

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

解説

db_source によって、CDataSource オブジェクトと CSession オブジェクトが作成されます。これらは、OLE DB のコンシューマー データ ソースとの接続を表します。

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

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

db_source は、クラスに、またはメソッド内で、データ ソース プロパティを追加します。 これは、db_command と組み合わせて使用されます (これは、db_sourcename パラメーターを source_name パラメーターとして受け取ります)。

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

アプリケーションで使用されるこの属性の例については、「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 {};

必要条件

属性コンテキスト Value
適用対象 classstruct、メンバー、メソッド、ローカル
反復可能 いいえ
必要な属性 なし
無効な属性 なし

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

関連項目

OLE DB コンシューマー属性