糖果派对官方网站_可以赌钱的糖果游戏_手机版
多线程下使用使用 UniDAC+MSSQL 需要注意的问题(使用CoInitialize)

多线程下使用使用 UniDAC+MSSQL 需要注意的问题(使用CoInitialize)

作者:网络编程    来源:未知    发布时间:2019-12-24 20:30    浏览量:

多线程下使用使用 UniDAC+MSSQL 需要注意的问题(使用CoInitialize)。请问下,小编在类成员中定义了之类只可以指针ClassA{MSXML2::IXMLDOMElementPtrxxx;}那本人必要在哪个地方调用CoInitialize和CoUninitialize?构造函数调用CoInitialize然后析构函数调用CoUninitialize吗?小编意识那样也十二分,智能指针xxx依旧报内部存款和储蓄器访谈错误,会跑到comip.h里release(卡塔尔国报错的

ADO线程不安全,UniDAC 在利用MSSQL也是如此。其实那是微软COM难点,不怪Devart公司。

平常消除措施是在线程早先启用 CoInitialize(nil卡塔尔,线程甘休调用 CoUninitialize 。借令你选择各种数据库连年,例如三层中时常切换来MSSQL和Oracle,大家只需在认清 TUniConnection 的连方今事件 OnBeforeConnect 写下如下代码:

诚如息灭格局是在线程开端启用 CoInitialize(nil卡塔尔(英语:State of Qatar),线程停止调用 CoUninitialize 。若是你接受种种数据库连接,譬喻三层中常常切换到MSSQL和Oracle,大家只需在认清 TUniConnection 的总是前事件 OnBeforeConnect 写下如下代码:

 

procedure TServDBFunc.ServConnBeforeConnect(Sender: TObject);
begin
if (ServConn <> nil) and SameText(ServConn.ProviderName,'SQL Server');then
    CoInitialize(nil);
end;

 

上一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.tk-web.com. bb电子糖果派对有限公司 版权所有