0

似乎 64 位 Sybase ASE 驱动程序仍将 SQLLEN 类型视为 32 位,而 UnixODBC 和几乎所有其他驱动程序都需要 64 位。例如,对于 SQLBindParameter 函数中的 strlen 参数,这是有问题的。

尽管可以通过将 SQLINTEGER 数组转换为 SQLLEN * 来破解这种特殊情况,但它会迫使我对 Sybase 进行特定的 ODBC 调用,这违背了通用 API 的目的。

这可以解决吗?有没有人设法在 64 位 Linux 上使用 Sybase ODBC 驱动程序而没有这些丑陋的黑客攻击?

4

1 回答 1

0

看起来答案是否定的。Sybase API 与早期版本的 UnixODBC 2.2.11 兼容,但与 UnixODBC 3.3 不兼容,因为 SQLLEN 已从 32 位移动到 64 位。

因此,解决方案是恢复到 UnixODBC 2.2.11。

于 2012-04-24T22:05:41.077 回答