使用informixdb连接时出现SQLCODE -1829

1 投票
1 回答
1961 浏览
提问于 2025-04-15 14:06

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

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。连接的用户有相应的权限。

1 个回答

1

好的,我搞明白这个问题了!看起来,只有在导入informixdb模块之前设置的环境变量才会影响这个模块的工作方式。所以,下面的代码是无效的:

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')

撰写回答