Informix连接可以通过Windows工作,但不能通过Cygwin



真的不知道该怎么处理这个。我有一个PHP脚本,它调用连接到Informix数据库的PERL脚本。当我在Windows cmd提示符下运行脚本时,这个设置运行得很好,但当我试图通过cygwin中的cron运行它时,它在上失败了

[IInformix][InformixODBC驱动程序]无法加载翻译共享库(DLL)。(SQL-IM009)

我曾尝试将Informix-bin目录(/cygdrive/c/Program\Files\(x86)/IBM/Infinx/Client-SDK/bin)添加到crontab文件中的PATH变量中,但没有任何更改。我还尝试将相同的目录添加到crontab文件中的INFORMIXDIR变量中,但随后我得到了以下错误消息

[IInformix][Informix ODBC Driver][Informix]未指定的系统错误=-23101。(SQL-HY000)

如果我在finderr.exe(由驱动程序提供)中查看该错误,我会发现这意味着它无法加载区域设置类别,或者我的INFORMIXDIR不正确,但我不知道如何设置CLIENT_locale或DB_locale。

然后,我想我通过使用正确的目录分隔符解决了这个问题,并删除了crontab中INFORMIXDIR变量的bin子目录,因为我再次出现了SQL-IM009错误。

我在cygwin中使用的是Windows PHP和PERL可执行文件,所以我真的不确定如果我通过cmd提示符运行它,它为什么不能正常工作。有人知道为什么会这样吗?

我正在Windows Server 2008 R2云实例上运行此程序,并试图复制一个工作设置,以便我们可以将其移动到异地。

事实证明,cygwin不喜欢Client SDK所在的目录。一旦我将其重新安装到C:\IBM/InInformix/Client SDK,一切都开始工作。我不确定问题是括号还是空格,但把它们从路径上弄出来似乎很管用。

在PATH环境中使用反斜杠和斜杠组合看起来更像是一个问题。*nix的斜杠,WIN和DOS的反斜杠。CLIENT、DBLOCALE、DBDATE等可以在WIN/DOS中的servernane.cmd文件中设置,也可以在.profile、.cshrc、.login等中设置,具体取决于您使用的*nix shell。只要INFORMIXDIR环境指向已安装的目录,就可以在任何您喜欢的目录中安装Informix二进制文件和其他支持文件。我在C:\INFORMIX中安装了11.70.FC6,在C:\dbspaces中安装了我的dbspace。

相关内容

最新更新