gpt4 book ai didi

linux - 连接到安装了单声道的 Informix DB 时出现 ODBC 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:04 24 4
gpt4 key购买 nike

我最近在我们的 Fedora Linux 系统上安装了 Mono,这样我们就可以在上面运行 ASP.NET 应用程序。我能够启动并运行这部分,但问题是我们使用 Informix DB,而 Mono 似乎阻止了 ODBC 的工作。

有没有人有过让 ODBC 连接到安装了 Mono 的 Informix DB 的经验?

我们有:

  • IBM Informix-ESQL 版本 3.50.UC7
  • unixODBC 2.2.14
  • Informix SE 版本 7.25.UC6R1
  • Mono 版本 2.6.7。
  • CSDK 版本是“IBM Informix CSDK 版本 3.50,IBM Informix-ESQL 版本 3.50.UC7”

如有任何帮助,我们将不胜感激。

这是完整的轨迹:


ppid=00003564,pid=00000000         ENTER SQLSetEnvAttr
SQLHENV 0x087489C8
SQLINTEGER 200
SQLPOINTER 0x00000003
SQLINTEGER 0

ppid=00003564,pid=00000000 EXIT SQLSetEnvAttr
SQLHENV 0x087489C8
SQLINTEGER 200
SQLPOINTER 0x00000003
SQLINTEGER 0 with return code 0 (SQL_SUCCESS)

ppid=00003564,pid=00000000 ENTER SQLGetEnvAttr
SQLHENV 0x087489C8
SQLINTEGER 200
SQLPOINTER 0xBFBF84F0
SQLINTEGER 0
SQLINTEGER * 0x04D05CA0

ppid=00003564,pid=00000000 EXIT SQLGetEnvAttr
SQLHENV 0x087489C8
SQLINTEGER 200
SQLPOINTER 0xBFBF84F0
SQLINTEGER 0
SQLINTEGER * 0x04D05CA0 with return code 0 (SQL_SUCCESS)

ppid=00003564,pid=00000000 ENTER SQLAllocHandle
SQLSMALLINT 2
SQLHANDLE 0x087489c8
SQLHANDLE * 0x0874c4c8

ppid=00003564,pid=00000000 EXIT SQLAllocHandle
SQLSMALLINT 2
SQLHANDLE 0x087489c8
SQLHANDLE * 0x0874c4c8 with return code 0 (SQL_SUCCESS)

ppid=00003564,pid=00000000 ENTER SQLSetConnectAttrW
SQLHDBC 0x08758F88
SQLINTEGER 115
SQLPOINTER 0x04D05CA0
SQLINTEGER 0
SQLINTEGER * 0x00000000

ppid=00003564,pid=00000000 EXIT SQLSetConnectAttrW
SQLHDBC 0x08758F88
SQLINTEGER 115
SQLPOINTER 0x04D05CA0
SQLINTEGER 0
SQLINTEGER * 0x00000000 with return code -1 (SQL_ERROR)

ppid=00003564,pid=00000000 ENTER SQLConnectW
SQLHDBC 0x08758F88
SQLWCHAR i
SQLSMALLINT -3
SQLWCHAR * *****
SQLSMALLINT -3
SQLWCHAR * *****
SQLSMALLINT -3
ppid=00003564,pid=00000000 EXIT SQLConnectW
SQLHDBC 0x08758F88
SQLWCHAR i
SQLSMALLINT -3
SQLWCHAR * *****
SQLSMALLINT -3
SQLWCHAR * *****
SQLSMALLINT -3 with return code -1 (SQL_ERROR)

ppid=00003564,pid=00000000 ENTER SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x08758F88
SQLSMALLINT 1
SQLWCHAR * ^R
SQLINTEGER * 0xBFBF96E0
SQLWCHAR * ~B
SQLSMALLINT 1026
SQLSMALLINT * 0xBFBF96EA

ppid=00003564,pid=00000000 EXIT SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x08758F88
SQLSMALLINT 1
SQLWCHAR * I
SQLINTEGER * 0xBFBF96E0
SQLWCHAR * [
SQLSMALLINT 1026
SQLSMALLINT * 0xBFBF96EA with return code 0 (SQL_SUCCESS)

ppid=00003564,pid=00000000 ENTER SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x08758F88
SQLSMALLINT 2
SQLWCHAR * I
SQLINTEGER * 0xBFBF96E0
SQLWCHAR * [
SQLSMALLINT 1026
SQLSMALLINT * 0xBFBF96EA

ppid=00003564,pid=00000000 EXIT SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x08758F88
SQLSMALLINT 2
SQLWCHAR * I
SQLINTEGER * 0xBFBF96E0
SQLWCHAR * [
SQLSMALLINT 1026
SQLSMALLINT * 0xBFBF96EA with return code 100 (SQL_NO_DATA_FOUND)

ppid=00003564,pid=00000000 ENTER SQLFreeHandle
SQLSMALLINT 2
SQLHANDLE 0x08758f88

ppid=00003564,pid=00000000 EXIT SQLFreeHandle
SQLSMALLINT 2
SQLHANDLE 0x00000000 with return code 0 (SQL_SUCCESS)

ppid=00003564,pid=00000000 ENTER SQLFreeHandle
SQLSMALLINT 1
SQLHANDLE 0x087489c8

ppid=00003564,pid=00000000 EXIT SQLFreeHandle
SQLSMALLINT 1
SQLHANDLE 0x00000000 with return code 0 (SQL_SUCCESS)

当我在 Mono 之外运行它时,连接非常相似,除了 EXIT SQLConnectW 给出了返回代码为 0 (SQL_SUCCESS) 的 -3

最佳答案

虽然您只有 Mono 有问题,但您可以尝试跟踪它。启用 ODBC 跟踪(一旦我在 Linux 上遇到问题,但 Informix 文档中出现错误,请参阅:Tracing ODBC calls for Informix Client for Linux)。

isql 跟踪 Informix 客户端并保存跟踪文件,然后从 Mono 跟踪它并比较两个跟踪。在 Mono trace 中应该有更多关于发生的事情的信息。

Jonathan 要求您检查是否使用最新的 CSDK 库,向我们展示您的驱动程序版本。也许您使用的旧驱动程序存在 Jonathan 所说的 Unicode 错误,您应该升级驱动程序?

关于linux - 连接到安装了单声道的 Informix DB 时出现 ODBC 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3715840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com