【问题标题】:SQL Error -4903 when trying to connect to DB2 database尝试连接 DB2 数据库时出现 SQL 错误 -4903
【发布时间】:2019-06-25 22:59:17
【问题描述】:

我在尝试使用 SQC 代码连接到 DB2 数据库时收到 -4903 的 SQL 错误代码(这是一个 ANSI C 应用程序,因此我需要使用 SQC 进行 SQL 查询)。当我查看 IBM 的网站以了解 -4903 的含义时,它所说的只是“函数名称的参数 n 的长度无效”。但是我不知道它指的是哪个参数或函数。我曾尝试查看 SQLCA 对象成员,但我无法在 Visual Studio 2015 中看到它们。

这是在 Visual Studio 2015 中调试的 ANSI C 应用程序。我能够使用 DB2 命令提示符连接到同一个数据库(即,通过运行“db2 connect to dbname user username using password”。但是当我尝试在代码中执行此操作会收到 -4903 错误。我还在两个不同的操作系统 Windows 7 和 Windows 10 上尝试过此操作。我的同事在 Windows 7 机器上执行此操作没有任何问题。

while ((retry++ < 3)
        || (sqlca.sqlcode == -30080)
        || (sqlca.sqlcode == -900  ) )
    {
        EXEC SQL CONNECT TO :DBName USER :userid USING :pword;

        if ((SQLCODE == 0 ) || (SQLCODE == (-1026)))
        {
            return(1);
        }
        else
        {
            dbLogAudit(KLCB, PLCB, KLLOGSEV(T),
                "Retry DBInit/sqlca.sqlcode : %i", sqlca.sqlcode);
        }
    }

我希望 SQLCODE 为 0,这表示连接成功,并且函数返回 1 给它的调用者。但是 sqlca.sqlcode 变量是 -4903(我在上面描述过)。

编辑:我发现参数被传递到错误消息中。完整的错误文本是“函数 sqlastrt_trusted 的参数 runtime_pid 的长度无效”。

【问题讨论】:

  • 如果有同事在同一可执行程序正常工作,而在至少一个可执行文件失败的工作站上,那么你有一个环境差异。您的工作是找出工作环境和失败环境之间可能存在的差异,例如 Db2 客户端的确切修订包,或其配置/设置/或用户设置,或者可执行程序实际上是不同的工作和失败的环境。客户端诊断文件中可能有更多详细信息。您还可以在客户端上跟踪 CLI。
  • 所以我找到了错误信息,如果有帮助的话。请参阅上面的编辑。我尝试在客户端上启用跟踪,但遇到了一些问题,将继续尝试。
  • 证明 CLI 库在工作环境和故障环境之间是相同的(版本 + 修复包 + 位数 + dll 文件大小),尤其是在连接到 z/OS 或 i 系列时。
  • 你知道最好的方法吗?很抱歉,我对 DB2 很陌生,我公司的大多数开发人员也是如此。我确实找到了这篇文章groups.google.com/forum/#!topic/comp.lang.cobol/fRLcg4XLjF0,最后的回复让我相信这是开发和运行时版本不同的问题
  • 如果你有一个正常工作的 Win7 和一个失败的 Win7(对于相同的二进制文件),比较 db2level 命令的输出(如果它存在),否则比较包含Db2 客户端产品(示例位置 c:\Program Files\IBM\SQLLIB ),但您的位置可能不同。

标签: sql visual-studio-2015 db2


【解决方案1】:

我解决了自己的问题。感谢毛帮助调试这个。

我的 DB2 开发环境运行的是 8.1.0 版,它使用 162 字节的结构来表示名为“sqla_program_id”的结构。但是,对同一结构使用 292 字节的运行时环境是 10.5 版。一旦我将我的开发 DB2 实例升级到 v10.5,它就像一个魅力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2014-06-10
    相关资源
    最近更新 更多