次の方法で共有


CDataSource::Open

更新 : 2007 年 11 月

指定された CLSIDProgID、または 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

参照

参照

CDataSource クラス

その他の技術情報

CDataSource のメンバ