我对使用QODBC进行QuickBooks报告非常陌生。我准备的第一个SELECT查询基本上是用ReceivePayment表中现有未使用的付款标记客户,查询该客户的剩余余额发票。输出是(或应该是)按CustomerRefFullName分组的客户列表,第2栏中包含未使用的付款金额,以及未开发票中的余额总额。
这是一个相当简单的查询。当我将表作为静态表导入MS Access时,查询速度与预期的一样快。但是,当我对链接表运行查询时,需要15分钟以上才能生成结果。
不应该发生这种事。这是MS Access配置错误的问题吗?其他与QODBC配置有关的东西,我缺少或不知道?任何帮助都将不胜感激。
发布于 2014-12-22 07:22:00
我想告诉您,当您在Access & run查询中导入QuickBooks数据时,显然它将执行得更快,因为本地MS表中的所有可用数据(脱机)都会执行得更快。但是,当您从链接表执行查询时,QODBC将从QuickBooks中获取数据。QODBC是一个使用QuickBooks SDK的ODBC驱动程序。
QODBC通过ODBC接口接受来自应用程序的SQL命令,然后将这些调用转换为QuickBooks会计数据库管理系统,并返回符合查询结果条件的记录集。此驱动程序不是客户机/服务器产品,而是在QuickBooks应用程序运行时直接与其通信。QuickBooks是一个平面文件数据库,该驱动程序不会将其转换为关系数据库,因此在使用该驱动程序进行开发时要记住这一点。
QODBC充当Intuit的“包装器”,这样客户最终可以使用标准数据库工具获得他们的QuickBooks数据;加快开发时间。
请记住,QODBC不是一个数据库工具,而是一个转换工具。您所请求的每个事务都必须通过大型复杂的XML事务被翻译和传递给QuickBooks。
QuickBooks应用层需要处理这些XML请求。记录的数量越多,XML请求就越长,因此QuickBooks可能需要更多的时间和内存来处理更长的请求。
我建议您通过QODBC设置屏幕->消息窗口->选择“显示驱动程序状态”和“显示优化器状态”选项启用QODBC状态面板。
然后,下次运行查询时,如果看到“等待QuickBooks”,这意味着QuickBooks需要时间来处理请求。屏幕右下角将有一个状态栏,它将显示一个窗口,其中包含有关QODBC正在工作的内容的信息。请注意QODBC花费的时间最多的步骤或者被卡住,并与我们共享它。
我还建议您尝试在VB上执行下面的命令,看看它可以解决这个问题:
SP_OPTIMIZEFULLSYNC ALL
此命令将向本地缓存提供一些数据,以提高查询的检索性能。我想建议你让完全超越命令运行。上面的命令可能需要一些时间取决于您在QuickBooks中的记录。它可能需要2-5小时或更长的时间取决于QuickBooks公司文件中的记录数量。请让这个命令完全运行,不要杀死这个命令。在应用程序构建优化器文件时关闭/关闭是不可取的。
参考:选定表的OPTIMIZEFULLSYNC
如果您仍然面临问题,请您从以下链接向QODBC技术支持部门出示支持票,并提供所要求的信息:
http://support.qodbc.com
还可以分享更多关于您所面临的问题的信息,以便我们能够快速找到问题所在。
我们可能需要以下信息,请附上下面列出的文件时,回复票。
1) QODBC设置屏幕的屏幕截图-- > About (Start>>All Programs>> QODBC驱动程序用于QuickBooks>> QODBC设置屏幕>>关于Tab ) 2)您所面临问题的屏幕截图。3)共享QuickBooks版本详细信息:按下f2 on QuickBooks UI &共享屏幕截图。4)共享正在使用的SQL语句。将整个日志文件作为文本格式的附件从5) QODBC设置屏幕-- > Messages -- > Review 6) QODBC安装屏幕-- > Messages -- > Review SDK消息中共享
https://stackoverflow.com/questions/27584512
复制相似问题