ODBC 類別和執行緒

從 MFC 4.2 版以後便具有對 MFC ODBC 類別的多執行緒 (Multithread) 支援。請注意,MFC 並未提供 DAO 類別的多執行緒支援。

ODBC 類別的多執行緒支援具有某些限制。由於這些類別包裝了 ODBC API,因此他們已被限制在建立此多執行緒支援的元件上。例如,許多 ODBC 驅動程式並不是安全執行緒 (Thread-Safe),所以如果您使用了其中一種驅動程式,MFC ODBC 類別就不會是安全執行緒。您應該驗證您的特定驅動程式是否為安全執行緒。

您應該在建立一個多執行緒應用程式時,非常小心地使用多執行緒來操作相同的物件。例如,在兩個執行緒中使用相同的 CRecordset 物件可能會在擷取資料時造成問題,其中一個執行緒的擷取作業可能會覆寫另一個執行緒所擷取的資料。在不同執行緒中使用 MFC ODBC 類別的常見方式,是在跨執行緒中共用一個開啟的 CDatabase 物件,以便讓每個執行緒的個別 CRecordset 物件使用相同的 ODBC 連接。請注意,不要將一個未開啟的 CDatabase 物件傳遞到另一個執行緒中的 CRecordset 物件。

注意事項注意事項

如果您一定要使用多執行緒來操作相同物件,就應該實作適當的同步處理機制 (Synchronization Mechanism),例如關鍵區段 (Critical Section)。請確認某些特定作業 (例如 Open) 並未受到保護。您應該確定這些作業不會同時被不同的執行緒呼叫。

如需建立多執行緒的詳細資訊,請參閱多執行緒主題

請參閱

概念

開放式資料庫連接 (ODBC)

資料存取程式設計