CDatabase::Open
呼叫此成員函式來初始化新建構的 CDatabase 物件。
virtual BOOL Open(
LPCTSTR lpszDSN,
BOOL bExclusive = FALSE,
BOOL bReadOnly = FALSE,
LPCTSTR lpszConnect = _T("ODBC;"),
BOOL bUseCursorLib = TRUE
);
參數
lpszDSN
指定資料來源名稱—名稱向註冊 ODBC 透過 ODBC 管理員程式。 如果資料來源名稱值。 lpszConnect 指定 (格式為「DSN=<data-source>"),在 lpszDSN無法指定。 在這種情況下, lpszDSN 應該是 NULL。 否則,您可以透過 NULL ,如果您要向使用者顯示使用者可以選取資料來源的資料來源對話方塊的使用者。 如需詳細資訊,請參閱<備註>。bExclusive
不支援在類別庫中的這個版本。 目前,,如果這個參數是 是,判斷提示就會失敗。 資料來源一定會開啟為共用 (非獨佔)。bReadOnly
是 ,如果想要連結之唯讀和不允許更新至資料來源。 所有相依的資料錄集繼承這個屬性。 預設值為 否。lpszConnect
指定連接字串。 連接字串串連資訊,可以包含一個資料來源、使用者 ID 有效資料來源中,使用者驗證字串 (密碼,因此,如果資料來源需要) 和其他資訊。 必須是以字串的前置字元完整連接字串「ODBC; 」(大寫或小寫)。 「ODBC; 」字串用來表示連接是 ODBC 資料來源,這是向上相容性,當類別庫的未來版本可能不支援 ODBC 資料來源。bUseCursorLib
是 ,如果想要 ODBC 資料指標程式庫 DLL 載入。 (如果驅動程式支援的話),資料指標程式庫遮罩,有效防止使用動態集的基礎 ODBC 驅動程式的一些功能。 支援的,如果資料指標程式庫載入是靜態快照唯一的游標和順向資料指標。 預設值為 是。 如果您計劃建立資料錄集物件會直接從 CRecordset ,而不是衍生自,則不應載入資料指標程式庫。
傳回值
如果不是零,連接成功地建立;則為 0,如果使用者選擇取消,若對話方塊要求的連接資訊。 在所有其他情況下,架構會擲回例外狀況。
備註
您的資料庫物件時,才可以使用該建構資料錄集物件之前,必須先初始化。
注意事項 |
---|
呼叫 OpenEx 成員函式的慣用方法是連接至資料來源並初始化您的資料庫物件。 |
如果您的 開啟 呼叫的參數不包含足夠的資訊來產生連接, ODBC 驅動程式會開啟 對話方塊取得使用者的必要資訊。 當您呼叫 開啟時,您的連接字串, lpszConnect,在 CDatabase 物件私用儲存並呼叫 GetConnect 成員函式可用。
如果需要,您可以在 中開啟 對話方塊中,在您呼叫 開啟 從使用者取得資訊,例如密碼,則加入之前,對您傳遞給 開啟之連接字串的資訊。 您也可能想要儲存您傳入的連接字串,因此您可以重複使用它,則下一次在 CDatabase 物件的應用程式呼叫 開啟 。
您可以為授權登入時也可以使用連接字串 (每個的多個層級不同的 CDatabase 物件) 或 Express 其他特定資料來源的資訊。 如需連接字串的詳細資訊,請參閱 Windows SDK的第 5 章。
如果,例如, DBMS 主應用程式無法使用,就可以進行連接嘗試能逾時。 如果連接嘗試失敗, 開啟 擲回 CDBException。
範例
// m_dbCust is a CDatabase object embedded in a CDocument class
if (bDefault)
{
// Connect the object to a data source (no password)
// the ODBC connection dialog box will always remain hidden
m_dbCust.Open(_T("MFC_ODBCTest"), FALSE, FALSE, _T("ODBC;UID=JOES"));
}
else
{
// ...Or, query the user for all connection information
m_dbCust.Open(NULL);
}
需求
Header: afxdb.h