Sql宽度(DBTool?)的ODBC问题进展

Sql宽度(DBTool?)的ODBC问题进展,sql,progress-4gl,openedge,Sql,Progress 4gl,Openedge,我的任务是从第三方进度数据库中获取一些数据。问题是,一些表报告了一个错误“表中的列的值超过了其最大长度或精度(7864)” 一些谷歌搜索发现这是数据库SQL宽度的问题,运行DBTool可以解决这一问题 问题是管理progress DB的第三方不想知道-他们说这可能会损坏数据库。由于我对任何事情都不太了解(尤其是进步),我无法反驳他们的论点 回答问题: 他们有反对的正当理由吗 不运行这个工具 如果他们 保持他们的位置,我有吗 我还有其他选择吗?记住,我对进步一无所知 您的第三方对此一无所知。DB

我的任务是从第三方进度数据库中获取一些数据。问题是,一些表报告了一个错误“表
中的列
的值超过了其最大长度或精度(7864)”

一些谷歌搜索发现这是数据库SQL宽度的问题,运行DBTool可以解决这一问题

问题是管理progress DB的第三方不想知道-他们说这可能会损坏数据库。由于我对任何事情都不太了解(尤其是进步),我无法反驳他们的论点

回答问题:

  • 他们有反对的正当理由吗 不运行这个工具
  • 如果他们 保持他们的位置,我有吗 我还有其他选择吗?记住,我对进步一无所知

    • 您的第三方对此一无所知。DBTool是处理此问题的标准方法,正是为此目的而提供的。运行dbtool非常常见,通常会偶尔自动运行(通常每月运行一次)

      他们可能会将其与“dbrpr”混淆。它可以重新格式化块和其他有趣的东西,如果使用不正确,肯定会给你带来麻烦

      你几乎可以肯定的是,不管有没有他们的合作,你都可以自己运行它。您只需要dba用户ID和密码。我可能错了,但是98%的时间dba用户ID是“sysprogress”,并且它很可能在ODBC连接中使用。如果你一直在设置密码,你可能知道密码(或者很容易获得密码)


      (如果他们不运行dbtool,那么他们可能也没有运行更新统计信息,这可能意味着性能非常差。Progress SQL引擎使用基于成本的优化器,如果没有一些统计信息来提供优化器,它将不会做得很好。但这是另一个问题的素材。)

      出现宽度错误的原因是进度数据库将所有数据存储为可变长度。4gl将很乐意在任何领域使用。(因此,如果您的第三方也是应用程序提供商,您可以让他们选择修复代码以遵守限制…)dbtool所做的只是扫描数据库中是否存在过填充字段,然后更新“最大宽度”属性以适应任何异常(它添加了一个模糊因子,因此您通常不必经常运行)。谢谢@tom!我现在可以回过头来,满怀信心地为这个案子进行辩论,如果他们不“打球”,我可以自己动手,我的处境也完全一样@TomBascom您知道如何让客户端(在我的例子中是SQuirreL)至少报告由于此错误而失败的列的值吗?您必须运行dbtool来获取列值。