SQL Server通过QODBC链接QuickBooks出现大量重复空数据库求助
QODBC连接QuickBooks出现重复空数据库问题的排查方案
问题根源推测
32位QuickBooks和64位SQL Server/QODBC的架构不兼容是核心诱因,即便QRemote做了桥接,仍可能出现进程通信异常、资源释放不彻底的情况,导致SQL Server链接服务器的元数据缓存混乱,生成大量无效的空QODBC数据库条目。
具体修复建议
手动清理SQL Server缓存
执行以下SQL命令清除链接服务器的元数据缓存,解决旧条目残留问题:DBCC FREEPROCCACHE DBCC FREESYSTEMCACHE('ALL')注意:执行前暂停非关键业务查询,避免影响正常运行。
调整QRemote服务器配置
打开QRemote配置工具,把连接超时时间拉长到30分钟以上,同时关闭自动刷新链接的功能,改成手动刷新,减少频繁同步带来的元数据冲突。确认QODBC驱动的兼容性设置
- 链接服务器属性的「提供者选项」里,勾选「允许进程内」(Enable in-process)
- 确保所用DSN是通过32位ODBC管理器(
C:\Windows\SysWOW64\odbcad32.exe)创建的,别用64位版本的管理器
限制并发连接数
在QODBC驱动的配置界面,把最大并发连接数设为1-2,避免多连接同时请求QuickBooks元数据引发资源竞争,导致解析错误。重启相关服务
按顺序重启QRemote服务器服务、SQL Server服务和QuickBooks应用,彻底释放占用的资源,清除进程间的无效通信状态。
临时替代方法
在等64位QuickBooks 2023升级完成前,可以用SQL Server的OPENQUERY语句直接查询,绕开链接服务器的缓存问题:
SELECT * FROM OPENQUERY([你的QODBC链接服务器名], 'SELECT * FROM Customer')
内容的提问来源于stack exchange,提问作者G Alvidrez
相关产品推荐
相关产品推荐

