红鱼儿

kbmMWUnidac直联SQLServer

UniDAC支持SQLServer直联了,当时就测试过在kbmMW中用直联方式,结果不尽人意,kbmMWServer在执行sql时会出地址错误,就一直没有进一步测试。今天听xalion说,是因为当直联时,不需要调用CoInitialize,因为调用了才产生这样的问题,可以通过改造kbmMWUniDAC单元来实现。

试着改了kbmMWUNiDAC单元,在直联的情况下,不再调用CoInitialize,测试结果不行,感觉查询变慢了,app卡在等待界面。原因待查。先记录在这里了!

constructor TkbmMWUNIDACConnection.Create(ConnectionPool:TkbmMWCustomConnectionPool; ConnectionList:TkbmMWCustomConnectionList; ConnID:integer);
begin
     inherited;
{$IFNDEF LINUX}
     TkbmMWUNIDACConnectionPool(ConnectionPool).FOLEDBCompatible:=
     (TkbmMWUNIDACConnectionPool(ConnectionPool).Database.ProviderName='SQL Server')
     //and (TkbmMWUNIDACConnectionPool(ConnectionPool).Database.SpecificOptions.Values['SQL Server.Provider']<>'prDirect')
     ;

注释的一行是我加的。

不知什么原因,按洞主改后的版本,2019-03-12测试通过了!奇怪,一个思路改的啊!

2020-07-29:

目前应用结果,采用直联,应用服务器稳定,不直联的情况下,运行一段时间会出现错误。今天青春也遇到类似问是,我让他采用直联试下,也解决了错误。这算不算bug呢?

 

posted on 2019-03-08 10:44  红鱼儿  阅读(715)  评论(0编辑  收藏  举报