我想通知您,当您在 Access 和运行查询中导入 QuickBooks 数据时,显然它会执行得更快,因为所有数据都在本地 MS Access 表(离线)中可用。但是当您从链接表执行查询时,QODBC 正在从 QuickBooks 中获取数据。 QODBC 是一个使用 QuickBooks SDK 的 ODBC 驱动程序。
QODBC 通过 ODBC 接口接受来自应用程序的 SQL 命令,然后将这些调用转换为导航 XML 命令到 QuickBooks 会计 DBMS,并返回符合查询结果的记录集。此驱动程序不是客户端/服务器产品,而是在运行时直接与 QuickBooks 应用程序通信。 QuickBooks 是一个平面文件数据库,此驱动不会将其更改为关系型数据库,因此在使用此驱动进行开发时请记住这一点。
QODBC 充当 Intuit SDK 的“包装器”,因此客户最终可以使用标准数据库工具获取其 QuickBooks 数据;加快开发时间。
请记住,QODBC 不是数据库工具,而是翻译工具。您请求的每项事务都必须通过大型复杂的 XML 事务进行翻译并传达给 QuickBooks。
QuickBooks 应用层需要处理这些 XML 请求。 Records 的数量越大,XML 请求就越长,因此 QuickBooks 可能需要更多的时间和内存来处理更长的请求。
我建议您通过 QODBC 设置屏幕->消息窗口->选择“显示驱动程序状态”和“显示优化器状态”选项启用 QODBC 状态面板。
那么下次运行查询时,如果看到“Waiting for QuickBooks”,则表示 QuickBooks 正在花时间处理请求。屏幕右下角将有一个状态面板,将显示一个窗口,其中包含有关 QODBC 正在工作的信息。请注意QODBC花费时间最多或卡住的步骤并与我们分享。
我还建议你尝试在 VB Demo 上执行以下命令,看看它可以解决问题:
SP_OPTIMIZEFULLSYNC ALL
此命令会将一些数据带到本地缓存以提高查询的检索性能。我想建议你完全运行上面的命令。以上命令可能需要一些时间,具体取决于您在 QuickBooks 中的记录。可能需要 2-5 小时或更长时间,具体取决于 QuickBooks 公司文件中的记录数量。请让这个命令完全运行,不要杀死这个命令。建议不要在构建优化器文件时杀死/关闭应用程序。
参考:
How to execute SP_OPTIMIZEUPDATESYNC or SP_OPTIMIZEFULLSYNC for Selected Tables
如果您仍然遇到问题,我恳请您通过以下链接向 QODBC 技术支持部门提出支持请求并提供所需信息:
http://support.qodbc.com
同时分享您所面临问题的更多信息,以便我们快速定位问题。
我们可能需要以下信息,请在回复工单时附上下列文件。
1) QODBC 设置屏幕截图 --> 关于(开始>>所有程序>> QODBC Driver for use with QuickBooks>> QODBC 设置屏幕>> 关于选项卡)
2)您面临的问题的屏幕截图。
3) 分享 QuickBooks 版本详情:在 QuickBooks UI 上按 f2 并分享屏幕截图。
4) 共享您正在使用的 SQL 语句。
以文本格式将整个日志文件作为附件共享
5) QODBC 设置屏幕 --> 消息 --> 查看 QODBC 消息
6) QODBC 设置屏幕 --> 消息 --> 查看 SDK 消息