无法使用PostgreSQL数据库映射从unixodbc返回的错误代码

无法使用PostgreSQL数据库映射从unixodbc返回的错误代码,postgresql,unixodbc,Postgresql,Unixodbc,我使用的是使用unixodbc驱动程序的PostgreSQL,在尝试获取连接时,出现了错误。我只打印SQLError的pfNativeError值,得到的值为'26' 我已经查看了postgresql返回的错误代码,如下所示: 我想知道unixodbc是否以pfNativeError的形式返回上面链接中提到的错误代码的最后三个字符?如果这是真的,我认为唯一的可能性是以下错误代码: 22026字符串数据长度不匹配字符串数据长度不匹配 一定要让我知道我的想法是否正确。另外,只有当PostgreSQL

我使用的是使用unixodbc驱动程序的PostgreSQL,在尝试获取连接时,出现了错误。我只打印SQLError的pfNativeError值,得到的值为'26'

我已经查看了postgresql返回的错误代码,如下所示:

我想知道unixodbc是否以pfNativeError的形式返回上面链接中提到的错误代码的最后三个字符?如果这是真的,我认为唯一的可能性是以下错误代码:

22026字符串数据长度不匹配字符串数据长度不匹配

一定要让我知道我的想法是否正确。另外,只有当PostgreSQL有数百万行,并且导致连接失败的查询试图获取大量数据(10Ks)时,我才注意到这个问题。有人能告诉我为什么会发生这个问题吗

编辑1: 如果有任何帮助,我将获得以下szerrmsg值:

  • 执行查询时出错
  • 无法发送查询(连接已断开)
编辑2:
返回的“26”是整数,上面链接中提到的代码是十六进制。十进制中的26对应于十六进制中的1A。不幸的是,它与上述文档中的任何内容都不对应。很明显,我没有主意了!有人能告诉我哪些不同的pfNativeError代码对应吗?

您使用PostgreSQL 8.1文档的具体原因是什么?还有,为什么不获取完整的
SQLSTATE
?@CraigRinger:没有具体的原因,我想错误代码不会有太大的变化。我意识到的另一个错误是“26”的复述代码是整数,正如postgres doc中提到的那样是十六进制的。所以26对应1A,它根本不存在!我显然一无所知。我不知道为什么我没有得到完整的szSqlState,它会给我链接中提到的完整错误代码吗?您至少能告诉我是否有任何方法可以找到pfNativeError中的“26”对应于什么吗?
SQLSTATE
是一个5个字符的文本代码。它不是十六进制。您需要使用
SQLSTATE
。不知道pgNativeError是什么意思,但我怀疑这是错误的树。所以你的意思是打印SZSQLRERROR是我调试问题的最佳选择?我在链接中进行了扫描:可能是针对某个特定的数据库,但我能说同样的错误代码也适用于我的情况吗?对于26,它说:26-无法为没有选择索引的情况分配存储。你怎么认为?