CDataSource::Open
更新 : 2007 年 11 月
指定された CLSID、ProgID、または CEnumerator モニカを使ってデータ ソースとの接続を開きます。または、データ ソースへの接続を指定するダイアログ ボックスを開いて、ユーザーにデータ ソースを問い合わせます。
HRESULT Open(
const CLSID& clsid,
DBPROPSET* pPropSet = NULL,
ULONG nPropertySets = 1
) throw( );
HRESULT Open(
const CLSID& clsid,
LPCTSTR pName,
LPCTSTR pUserName = NULL,
LPCTSTR pPassword = NULL,
long nInitMode = 0
) throw( );
HRESULT Open(
LPCTSTR szProgID,
DBPROPSET* pPropSet = NULL,
ULONG nPropertySets = 1
) throw( );
HRESULT Open(
LPCTSTR szProgID,
LPCTSTR pName,
LPCTSTR pUserName = NULL,
LPCTSTR pPassword = NULL,
long nInitMode = 0
) throw( );
HRESULT Open(
const CEnumerator& enumerator,
DBPROPSET* pPropSet = NULL,
ULONG nPropertySets = 1
) throw( );
HRESULT Open(
const CEnumerator& enumerator,
LPCTSTR pName,
LPCTSTR pUserName = NULL,
LPCTSTR pPassword = NULL,
long nInitMode = 0
) throw( );
HRESULT Open(
HWND hWnd = GetActiveWindow( ),
DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_WIZARDSHEET
) throw( );
HRESULT Open(
LPCWSTR szProgID,
DBPROPSET* pPropSet = NULL,
ULONG nPropertySets = 1
) throw( );
HRESULT Open(
LPCSTR szProgID,
LPCTSTR pName,
LPCTSTR pUserName = NULL,
LPCTSTR pPassword = NULL,
long nInitMode = 0
) throw( );
パラメータ
clsid
[入力] データ プロバイダの CLSID。pPropSet
[入力] 設定するプロパティと値を格納した DBPROPSET 構造体の配列へのポインタ。Windows SDK の『OLE DB Programmer's Reference』で「Property Sets and Property Groups」を参照してください。nPropertySets
[入力] 引数 pPropSet で渡される DBPROPSET 構造体の数。pName
[入力] 接続先データベースの名前。pUserName
[入力] ユーザーの名前。pPassword
[入力] ユーザーのパスワード。nInitMode
[入力] データベースの初期化モード。有効な初期化モードの一覧については、Windows SDK にある『OLE DB Programmer's Reference』の「Initialization Properties」を参照してください。nInitMode を 0 にすると、接続を開くときに使用するプロパティ セットに初期化モードが取り込まれません。szProgID
[入力] プログラム ID。enumerator
[入力] CEnumerator オブジェクト。呼び出し元が CLSID を指定しなかった場合は、このオブジェクトを使用して、接続を開くためのモニカを取得します。hWnd
[入力] ダイアログ ボックスの親にするウィンドウへのハンドル。hWnd パラメータを使う関数オーバーロードを使用すると、自動的にサービス コンポーネントが起動します。詳細については、「解説」を参照してください。dwPromptOptions
[入力] データ ソースへの接続を指定するダイアログ ボックスの表示スタイル。指定できる値については、Msdasc.h を参照してください。
戻り値
標準の HRESULT を返します。
解説
hWnd パラメータを使用するメソッド オーバーロードは、oledb32.dll 内のサービス コンポーネントを使ってデータ ソース オブジェクトを開きます。この DLL には、リソース プーリング、自動トランザクション参加などのサービス コンポーネント機能の実装が含まれています。詳細については、『OLE DB Programmer's Reference』(https://msdn.microsoft.com/library/default.asp?url=/library/en-us/oledb/htm/oledbole_db_services.asp?frame=true) の「OLE DB Services」を参照してください。
hWnd パラメータを使用しないメソッド オーバーロードは、oledb32.dll 内のサービス コンポーネントを使用しないでデータ ソース オブジェクトを開きます。このような関数オーバーロードで開かれた CDataSource オブジェクトは、サービス コンポーネントのどの機能も利用できなくなります。
使用例
次のコードは、Jet 4.0 データ ソースを OLE DB のテンプレートを使って開く方法を示します。Jet データ ソースを OLE DB データ ソースとして扱います。ただし、Open を呼び出すには、DBPROPSET_DBINIT 用と DBPROP_JETOLEDB_DATABASEPASSWORD を設定するための DBPROPSET_JETOLEDB_DBINIT 用との 2 つのプロパティ セットが必要です。
CDBPropSet rgDBPropSet[2]; // Declare two property sets;
// set properties elsewhere as appropriate.
hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);
必要条件
ヘッダー : atldbcli.h