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呢?