共用方式為


CDaoDatabase::Open

您必須呼叫這個成員函式會初始化表示現有資料庫的新建構的 CDaoDatabase 物件。

virtual void Open( 
   LPCTSTR lpszName, 
   BOOL bExclusive = FALSE, 
   BOOL bReadOnly = FALSE, 
   LPCTSTR lpszConnect = _T( 
   "" ) 
);

參數

  • lpszName
    是現有 Microsoft Jet 的字串運算式 (.MDB) 資料庫檔案的名稱。 如果檔名副檔名,則需要。 如果您的網路支援一致的命名慣例 (UNC),您也可以指定一個網路路徑,例如「\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB.MDB」。 (雙重反斜線在字串常值 (String Literal) 是必要的,因為「\" is the C ++ 逸出字元 (Escape Character)。

    某些考量時, lpszName。 如果它:

    • 參考為獨佔存取已經開啟由另一位使用者的資料庫, MFC 會擲回型別 CDaoException的例外狀況。 截獲例外狀況告知使用者資料庫無法使用。

    • 為空字串 (""),而且 lpszConnect 是「ODBC; 」,列出所有註冊的 ODBC 資料來源名稱] 對話方塊隨即出現,讓使用者能夠選取資料庫。 您應該避免使用 ODBC 資料來源的直接連接;使用已附加的資料表。

    • 否則不會參考現有的資料庫或有效的 ODBC 資料來源名稱, MFC 會擲回型別 CDaoException的例外狀況。

    注意事項注意事項

    如需 DAO 錯誤碼的詳細資訊,請參閱 DAOERR.H 檔案。如需相關資訊,請參閱本主題稍後的「可截獲的資料存取錯誤《DAO 說明。

  • bExclusive
    的布林值,如果資料庫中要獨佔 (共用) 存取和 開啟,如果資料庫針對共用存取權開啟。 如果省略這個引數,資料庫的共用存取權開啟。

  • bReadOnly
    的布林值,如果資料庫供唯讀存取和 開啟,如果資料庫供讀取/寫入存取權開啟。 如果省略這個引數,資料庫的讀取/寫入存取權開啟。 所有相依的資料錄集繼承這個屬性。

  • lpszConnect
    字串運算式提供開啟資料庫使用。 這個字串組成 ODBC 連接引數。 您必須提供專有和唯讀引數提供來源字串。 如果資料庫是 Microsoft Jet 資料庫 (.MDB),這個字串是空的 ("")。 預設值為— _T("") 語法—針對 Unicode 與您的應用程式 ANSI 組建的可攜性。

備註

開啟 相關聯的資料庫與基礎 ADO 物件。 您不能用來建構資料錄集、tabledef 或 querydef 物件的資料庫物件,初始化完成。 開啟 附加至相關聯的工作區的資料庫中的資料庫物件。

使用參數如下所示:

  • 如果您開啟 Microsoft Jet (.MDB) 資料庫,請使用 lpszName 參數並將 lpszConnect 參數的空字串或透過表單的密碼字串「; PWD=password」,如果資料庫密碼保護 (僅限 .MDB 資料庫)。

  • 如果您開啟 ODBC 資料來源,則會將 lpszConnect 的有效 ODBC 連接字串 (Connection String) 和在 lpszName的空字串。

如需相關資訊,請參閱本主題 OpenDatabase 「方法」DAO 說明。

注意事項注意事項

為了要取得更佳的效能,在外部資料庫,包括 ISAM 資料庫和 ODBC 資料來源,建議在存取您附加外部資料庫資料表對應至 Microsoft Jet 資料庫引擎 (.MDB) 而不是直接連接至資料來源。

如果,例如, DBMS 主應用程式無法使用,就可以進行連接嘗試能逾時。 如果連接嘗試失敗, 開啟CDaoException會擲回型別的例外狀況。

其餘的備註只適用於 ODBC 資料庫:

如果資料庫是 ODBC 資料庫,並在您的 開啟 呼叫的參數不包含足夠的資訊來產生連接, ODBC 驅動程式會開啟 對話方塊取得使用者的必要資訊。 當您呼叫時, 開啟,私用儲存連接字串, lpszConnect並呼叫 GetConnect 成員函式可用。

如果需要,您可以在 中開啟 對話方塊中,在您呼叫 開啟 從使用者取得資訊,例如密碼,則加入之前,對您傳遞給 開啟之連接字串的資訊。 您也可能想要儲存 (可能) 在 Windows 登錄中傳遞的連接字串,因此您可以重複使用它,則下一次在 CDaoDatabase 物件的應用程式呼叫 開啟

您可以為授權登入時也可以使用連接字串 (每個的多個層級不同的 CDaoDatabase 物件) 或 Express 其他特定資料庫的資訊。

需求

Header: afxdao.h

請參閱

參考

CDaoDatabase 類別

階層架構圖

CDatabase::CDatabase

CDatabase::Close