红鱼儿

统计

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测试通过了!奇怪,一个思路改的啊!

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