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 を参照)。 この name を db_command
の source_name パラメーターに渡して、データ ソースとコマンドを関連付けます。
hresult
(省略可能) このデータベース コマンドの HRESULT を受け取る変数を識別します。 変数が存在しない場合は、属性によって自動的に挿入されます。
解説
db_source によって、CDataSource オブジェクトと CSession オブジェクトが作成されます。これらは、OLE DB のコンシューマー データ ソースとの接続を表します。
クラスで db_source を使用すると、CSession
オブジェクトはクラスのメンバーになります。
メソッドで db_source を使用すると、挿入されたコードがメソッド スコープ内で実行され、CSession
オブジェクトがローカル変数として作成されます。
db_source は、クラスに、またはメソッド内で、データ ソース プロパティを追加します。 これは、 db_command
( db_source name パラメーターを 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 |
---|---|
適用対象 | class 、struct 、メンバー、メソッド、ローカル |
反復可能 | いいえ |
必要な属性 | なし |
無効な属性 | なし |
属性コンテキストの詳細については、「 属性コンテキスト」を参照してください。