首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFC Ms Access Close DB阻塞

MFC Ms Access Close DB阻塞
EN

Stack Overflow用户
提问于 2020-03-05 16:43:25
回答 1查看 89关注 0票数 0

将MFC应用程序连接到ms access。有时connection.close会失败并阻塞整个应用程序。这个问题发生在1909版本的windows上(我们永远不会在1903版本上得到这个错误)

下面是完整的堆栈跟踪:(如果需要,我有一个转储文件)

代码语言:javascript
复制
ntdll.dll!_NtWaitForMultipleObjects@20()
KERNELBASE.dll!WaitForMultipleObjectsEx()
mso20win32client.dll!65e32850()
[Les frames ci-dessous sont peut-être incorrects et/ou manquants, aucun symbole chargé pour mso20win32client.dll]
AcLayers.dll!NS_FaultTolerantHeap::APIHook_RtlFreeHeap(void *,unsigned long,void *)
mso20win32client.dll!65d53a44()
mso40uiwin32client.dll!64479086()
mso50win32client.dll!6437940a()
mso.dll!621ed2c0()
ACECORE.DLL!798b6a26()
ACECORE.DLL!798525c5()
ACEOLEDB.DLL!7973c822()
ACEOLEDB.DLL!7973ccdd()
ACEOLEDB.DLL!7973a703()
ACEOLEDB.DLL!7973b283()
ACEOLEDB.DLL!79741fdc()
oledb32.dll!CAcm::FinalRelease()
oledb32.dll!CACMDynamic<class CDCM>::CmFinalRelease(void)
oledb32.dll!ATL::CComPolyObject<class CDCM>::Release(void)
oledb32.dll!CDCMPool::DestroyResource(unsigned long)
comsvcs.dll!CHolder::SafeDispenserDriver::DestroyResource()
comsvcs.dll!CHolder::Close()
oledb32.dll!CDCMPool::DetachFromHolder()
oledb32.dll!CDCMPoolManager::ScavangePools()
oledb32.dll!CDCMPoolManager::Release()
oledb32.dll!ATL::CComObject<CMSDAInitialize>::Release()
msado15.dll!CConnection::Term()
msado15.dll!ATL::CComObject<CConnection>::Release()
BAT_EMC3.exe!COleDispatchDriver::ReleaseDispatch() Ligne 155
BAT_EMC3.exe!COleDispatchDriver::~COleDispatchDriver() Ligne 131
BAT_EMC3.exe!_Connection::~_Connection()
BAT_EMC3.exe!_Connection::`scalar deleting destructor'(unsigned int)
BAT_EMC3.exe!CloseDB(_Connection * pConnection) Ligne 130
BAT_EMC3.exe!GetOptionsPath(bool bLMProfile, ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > > sSection, ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > > sParametres, ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > > sDefaultPath) Ligne 264
BAT_EMC3.exe!CBAT_EMCApp::CheckUpdate() Ligne 1293
BAT_EMC3.exe!CBAT_EMCApp::InitInstance() Ligne 269
BAT_EMC3.exe!AfxWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Ligne 37
BAT_EMC3.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Ligne 26
BAT_EMC3.exe!invoke_main() Ligne 123
BAT_EMC3.exe!__scrt_common_main_seh() Ligne 288
BAT_EMC3.exe!__scrt_common_main() Ligne 331
BAT_EMC3.exe!wWinMainCRTStartup() Ligne 17
kernel32.dll!@BaseThreadInitThunk@12()
ntdll.dll!__RtlUserThreadStart()
ntdll.dll!__RtlUserThreadStart@8()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-03 16:49:40

我通过禁用池化,然后在connectionstring中插入以下内容来解决我的问题:

代码语言:javascript
复制
";OLE DB Services = -2"; 

有关更多信息,请参阅https://docs.microsoft.com/fr-fr/archive/blogs/selvar/ole-db-resource-pooling

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60541247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档