国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
多線程操作數(shù)據(jù)庫
ODBC 類和線程
         從 MFC 4.2 開始,提供對 MFC ODBC 類的多線程支持。 但是請注意,MFC 不提供對 DAO 類的多線程支持。

         對 ODBC 類的多線程支持有一些限制。 因為這些類包裝了 ODBC API,所以對 ODBC 類的多線程支持僅限于對它們所依賴的組件的多線程支持。 例如,許多 ODBC 驅(qū)動程序都不是線程安全的;因此如果 MFC ODBC 類和這樣的一種驅(qū)動程序一起使用,這些類也不是線程安全的。 應(yīng)該驗證您的特定驅(qū)動程序是否是線程安全的。

         創(chuàng)建多線程應(yīng)用程序時,使用多線程處理同一對象一定要非常小心。 例如,在兩個線程中使用同一 CRecordset 對象在檢索數(shù)據(jù)時可能會引發(fā)問題;一個線程中的獲取操作可能會覆蓋在另一個線程中獲取的數(shù)據(jù)。 MFC ODBC 類在單獨的線程中的更常見用法是在這些線程中共享一個打開的 CDatabase 對象以使用同一個 ODBC 連接,而在每一個線程中都有單獨的 CRecordset 對象。 注意不要將未打開的 CDatabase 對象傳遞給另一個線程中的 CRecordset 對象。
         如果必須用多線程處理同一對象,則應(yīng)該執(zhí)行適當(dāng)?shù)耐綑C(jī)制,如臨界區(qū)。 請注意對某些操作(如 Open 操作)沒有提供保護(hù)。 您應(yīng)該確保這些操作不會被單獨的線程并行調(diào)用。

CRecordset 中的CTime變量和bug
         如果使用了VC++6.0 Wizard重載CRecordset,并且指定的數(shù)據(jù)源中有時間變量,那么VC6將生成一個CTime變量,但是這個變量在構(gòu)造函數(shù)中并不會被初始化,因此,必須手工添加,如:m_tTime = 0,否則,程序在運(yùn)行過程中通常在執(zhí)行void YourODBCTable::DoFieldExchange(CFieldExchange* pFX)時,在RFX_Date(pFX, _T("[tTIME]"), m_tTIME)處發(fā)生訪問越界錯誤,更有甚者,當(dāng)程序的復(fù)雜度較大時可能發(fā)生在一些不確定的區(qū)域,為程序調(diào)試帶來巨大的難度。導(dǎo)致發(fā)生問題的原因是m_tTime可能是負(fù)值,所以調(diào)用GetLocalTm(NULL)->tm_year時發(fā)生訪問越界的錯誤。

         這個問題與微軟的BUG有關(guān)(具體不詳),但是如果我們都有一個良好的編程習(xí)慣,那這個BUG就沒有危害,當(dāng)然,我這個帖子也就沒有了,呵呵~

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用VC++開發(fā)ODBC數(shù)據(jù)庫應(yīng)用
用MFC ODBC操作Access數(shù)據(jù)庫
MFC 中的多線程
C++語言培訓(xùn)班
淺議Visual C++多線程設(shè)計
用VC++6.0開發(fā)多表聯(lián)接的數(shù)據(jù)庫應(yīng)用程序 - Visual C++ - Windows...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服