CDataSource::Open
使用 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
[in] 資料提供者的 CLSID 。pPropSet
[in] 物件陣列的指標包含屬性和值的 DBPROPSET 結構會設定。 請參閱 *《 OLE DB 程式設計人員參考》*的屬性集合和屬性群組 Windows SDK。nPropertySets
[in] DBPROPSET 結構數目pPropSet 引數傳遞的。pName
[in] 要連接的資料庫名稱。pUserName
[in] 使用者的名稱。pPassword
[in] 使用者的密碼。nInitMode
[in] 資料庫初始化方式。 參閱《 OLE DB 程式設計人員參考》的 Windows SDK 中的 初始化屬性 取得有效的初始化方式清單。 如果 nInitMode 是零,沒有初始化模式包含進用以開啟連接的屬性集合中。szProgID
[in] 程式識別項。enumerator
[in] 當呼叫端不指定 CLSID時用於取得開啟連線的別名之 CEnumerator 物件。hWnd
[in] 控制代碼是對話方塊的父視窗。 使用利用 hWnd 參數的函式多載將會自動叫用服務元件;請參閱 Remarks 以取得詳細資訊。dwPromptOptions
[in] 判斷定位器對話方塊樣式顯示。 如需可能的值請參閱 Msdasc.h。
傳回值
標準版 HRESULT
備註
這個方法會使用在 oledb32.dll 的服務元件多載使用hWnd 參數開啟資料來源物件;這個 DLL 包含服務元件功能的實作,例如資源共用,自動異動登記,依此類推。 如需詳細資訊,請參閱《OLE DB 程式設計人員參考》中的「OLE DB 服務」 https://msdn.microsoft.com/library/default.asp?url=/library/en-us/oledb/htm/oledbole_db_services.asp?frame=true。
不使用 hWnd 參數的方法多載會開啟資料來源物件,而不需要使用在 oledb32.dll 的服務元件。 用這些函式多載開啟 CDataSource 物件無法套用任何一種服務元件的功能。
範例
下列程式碼示範如何開啟 OLE DB 樣板的 Jet 4.0 資料來源。 您將 Jet 資料來源做為 OLE DB 資料來源。 不過,您對 Open 的呼叫需要兩個屬性集合:一個 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