共用方式為


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)

資料存取程式設計