QODBC Online连接SQL Server链接服务器后表无数据问题求助
检查QODBC驱动的SQL兼容配置
打开QODBC设置界面,进入Advanced或SQL Settings标签,确认开启SQL Server Compatible Mode——部分版本需手动启用该选项,才能让SQL Server正确解析QODBC返回的数据集。同时调整Default Fetch Size参数至1000或更大,避免因拉取阈值过小导致数据无法完整返回。修正链接服务器的安全上下文
在SSMS中右键链接服务器→属性→安全性,选择使用此安全上下文建立连接,填入和PowerBI连接时一致的QuickBooks授权账号。别用登录的当前安全上下文,因为SQL Server服务账号大概率没有QuickBooks的访问权限。改用
OPENQUERY语法执行查询
QODBC的SQL语法和标准SQL存在差异,直接查询链接服务器表可能解析失败,必须用OPENQUERY封装查询,示例:SELECT * FROM OPENQUERY(YourLinkedServerName, 'SELECT * FROM Customer')PowerBI会自动适配QODBC语法,但SQL Server不会,这是常见的空结果原因。
确认QuickBooks的访问模式与权限
确保QuickBooks处于单用户模式(或当前登录账号有完全访问权限),多用户模式下QODBC可能限制数据读取。另外检查QuickBooks是否开启了数据访问限制,比如针对账号的只读权限是否覆盖了要查询的表。匹配驱动与SQL Server的位数
64位SQL Server必须搭配64位QODBC驱动,32位SQL Server对应32位驱动。PowerBI会自动适配位数,但SQL Server链接服务器对位数匹配要求严格,不匹配会直接导致数据无法拉取。开启链接服务器的RPC选项
进入链接服务器属性→服务器选项,把RPC和RPC Out都设为True。QODBC依赖RPC调用获取QuickBooks数据,这两个选项关闭会直接导致数据返回失败。
内容的提问来源于stack exchange,提问作者Matt Steverson

