指定された 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 データ ソースとして扱います。 しかし、あなたの呼び出しオープン2 つのプロパティ セットを必要があります。1 つのDBPROPSET_DBINIT と他の DBPROPSET_JETOLEDB_DBINIT、設定できるように DBPROP_JETOLEDB_DATABASEPASSWORD。
CDBPropSet rgDBPropSet[2]; // Declare two property sets;
// set properties elsewhere as appropriate.
hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);
必要条件
**ヘッダー:**atldbcli.h