使用 informixdb 连接时的 SQLCODE -1829

Posted

技术标签:

【中文标题】使用 informixdb 连接时的 SQLCODE -1829【英文标题】:SQLCODE -1829 on connect using informixdb 【发布时间】:2009-09-06 13:54:07 【问题描述】:

在尝试连接到数据库时,我收到一个奇怪的错误:

DatabaseError: SQLCODE -1829 in CONNECT:
ì¦à : Cannot open file 'os.iem'
ì¦à : Cannot open file 'os.iem'

我可以确认该文件存在于 $INFORMIXDIR/msg/en_us/0333/ 目录中。环境变量 INFORMIXDIR、INFORMIXSERVER 和 ONCONFIG 设置正确且符合我的实例的预期。关于我可能做错了什么的任何线索?

我正在使用informixdb(2.5 版)连接并正在连接到Informix 11.5 版。正在连接的用户具有必要的权限。

【问题讨论】:

informixdb 是用于连接 Informix 的 Python 模块吗? 是的,就是连接Informix的Python模块。 【参考方案1】:

好的,想通了这个!似乎只有在导入 informixdb 模块之前设置的 env 值会影响模块的工作方式。所以以下不起作用:

import informixdb
os.environ["INFORMIXDIR"] = "/opt/informix"

...
def conn(db):
    informixdb.connect(db, self.username, self.passwd)
...
conn('local')

而以下是:

os.environ["INFORMIXDIR"] = "/opt/informix"
import informixdb

...
def conn(db):
    informixdb.connect(db, self.username, self.passwd)
...
conn('local')

【讨论】:

干得好。我以为它是“环境”,但在我知道自己在处理什么之前不想自夸。

以上是关于使用 informixdb 连接时的 SQLCODE -1829的主要内容,如果未能解决你的问题,请参考以下文章

使用sqlalchemy的informix DB的Python数据库连接

通过 python informixdb 寻找 Informix 的 SQL 插入语法

为啥 Python informixdb 包会抛出错误!

在 informix DB 中是不是定义了任何 alpha 逻辑

从代码更改/创建 ODBC 连接

关于与内连接结合使用时的外连接