資料來源:管理連接 (ODBC)
本主題適用於 MFC ODBC 類別。
本主題將說明:
連接到數據來源表示建立與 DBMS 的通訊以存取數據。 當您透過 ODBC 驅動程式從應用程式連線到數據源時,驅動程式會在本機或透過網路為您建立連線。
您可以連線到您擁有 ODBC 驅動程式的任何資料來源。 您應用程式的使用者也必須為其數據源具有相同的 ODBC 驅動程式。 如需重新發佈 ODBC 驅動程式的詳細資訊,請參閱 將 ODBC 元件轉散發給您的客戶。
設定數據源
ODBC 系統管理員可用來設定數據源。 您也可以在安裝之後使用 ODBC 系統管理員來新增或移除數據源。 當您建立應用程式時,您可以將用戶導向 ODBC 系統管理員,讓他們新增數據源,或者您可以透過直接的 ODBC 安裝呼叫,在應用程式中建置這項功能。 如需詳細資訊,請參閱 ODBC 系統管理員。
您可以使用 Excel 檔案做為數據源,而且您必須設定檔案,使其註冊並出現在 [ 選取數據源 ] 對話方塊中。
使用 Excel 檔案作為數據源
使用 ODBC 數據源管理員設定檔案。
在 [ 檔案 DSN] 索引標籤上 ,按兩下 [ 新增]。
在 [ 建立新的數據源] 對話框中,選取 Excel 驅動程式,然後按 [ 下一步]。
按兩下 [ 瀏覽],然後選取要當做日期來源使用的檔名。
注意
您可能需要選取 下拉功能表中的所有檔案 ,才能檢視.xls檔案。
按 [下一步],然後按一下 [完成]。
在 [ ODBC Microsoft Excel 安裝程式 ] 對話框中,選取資料庫 [版本] 和 [活頁簿]。
在多用戶環境中工作
如果多個用戶連線到數據源,則在記錄集中操作數據時,他們可以變更數據。 同樣地,您的變更可能會影響其他用戶的記錄集。 如需詳細資訊,請參閱 記錄集:記錄集如何更新記錄 (ODBC) 和 交易 (ODBC) 。
將連接字串一般化
精靈會使用預設 連接字串 來建立數據源的連線。 當您開發應用程式時,您可以使用此連線來檢視資料表和資料行。 不過,此預設 連接字串 可能不適合使用者透過應用程式連線至數據源。 例如,其數據源及其位置的路徑可能與開發應用程式時所使用的路徑不同。 在此情況下,您應該以更一般的方式重新實 作 CRecordset::GetDefaultConnect 成員函式,並捨棄精靈實作。 例如,使用下列其中一種方法:
使用 ODBC 系統管理員註冊和管理 連接字串。
編輯 連接字串 並移除資料來源名稱。 架構提供 ODBC 做為數據源;在運行時間,ODBC 會顯示一個對話方塊,要求數據來源名稱和任何其他必要的連接資訊。
僅提供數據來源名稱。 如有需要,ODBC 會要求使用者標識碼和密碼。 例如,在一般化之前,連接字串 如下所示:
CString CApp1Set::GetDefaultConnect() { return "ODBC;DSN=afx;Trusted_Connection=Yes;"; }
此 連接字串 會指定使用 Windows NT 整合式安全性的信任連線。 您應該避免將密碼硬式編碼或指定空白密碼,因為這樣做會造成重大的安全性弱點。 相反地,您可以提供
GetDefaultConnect
新的 連接字串,讓它查詢使用者標識碼和密碼。// User must select data source and supply user ID and password: return "ODBC;"; // User ID and password required: return "ODBC;DSN=mydb;"; // Password required (myuserid must be replaced with a valid user ID): return "ODBC;DSN=mydb;UID=myuserid;"; // Hard-coded user ID and password (SECURITY WEAKNESS--AVOID): return "ODBC;DSN=mydb;UID=sa;PWD=777;";
連接到特定數據源
若要連線到特定數據源,您的數據源必須已經設定為 ODBC 系統管理員。
線上到特定數據源
CDatabase
建構物件。呼叫其
OpenEx
或Open
成員函式。
如需有關如何指定數據源的詳細資訊,如果不是您使用精靈指定的數據源,請參閱 MFC 參考中的 CDatabase::OpenEx 或 CDatabase::Open。
從資料來源中斷連接
您必須先關閉任何開啟的記錄集, Close
才能呼叫 的成員 CDatabase
函式。 在與 CDatabase
您要關閉之對象相關聯的記錄集中,會取消任何暫止 AddNew
或 Edit
語句,並回復所有暫止的交易。
中斷與數據源的連線
CDatabase
呼叫物件的 Close 成員函式。除非您想要重複使用對象,否則會終結物件。
重複使用 CDatabase 物件
您可以在中斷連接對象之後重複使用 CDatabase
物件,不論您是使用它重新連線至相同的數據源,還是聯機到不同的數據源。
重複使用 CDatabase 物件
關閉物件的原始連接。
不要終結 物件,而是再次呼叫其
OpenEx
或Open
成員函式。