不太确定这个该怎么做。我有一个PHP脚本,它调用一个PERL脚本,该脚本连接到Informix数据库。当我将脚本运行到Windows提示符时,这个设置工作得很好,但是当我试图通过cygwin中的cron运行它时,它就失败了。
InformixUnable加载翻译共享库(DLL)。(SQL-IM009 009)
我尝试将Informix目录(/cygdrive/c/Program\ Files\ (x86)/IBM/Informix/Client-SDK/ bin )添加到crontab文件中的PATH变量中,但没有任何更改。我还尝试将同一个目录添加到crontab文件中的INFORMIXDIR变量中,但随后得到了以下错误消息:
InformixInformixUnspecified系统错误= -23101。(SQL-HY000)
如果我在finderr.exe中查看这个错误(由驱动程序提供),我会发现它意味着它无法加载地区类别,或者我的INFORMIXDIR是不正确的,但是我不知道如何设置CLIENT_LOCALE或DB_LOCALE。
然后,我认为我通过使用正确的目录分隔符修复了这个问题,并在crontab中删除了INFORMIXDIR变量的bin子目录,因为我再次得到了SQLIM009错误。
我在cygwin中使用的是Windows和PERL可执行文件,所以我不太清楚如果我通过cmd提示符运行它,它为什么不能正常工作。有人知道这是为什么吗?
我正在Windows 2008 R2云实例上运行这个程序,并且我试图复制一个工作设置,以便我们可以将它移动到一个离地位置。
发布于 2012-12-13 19:25:30
事实证明,cygwin不喜欢Client所在的目录。一旦我将它重新安装到C:/IBM/Informix/Client-SDK,一切都开始工作了。我不确定问题是括号还是空格,但是把它们从路径中弄出来似乎是有效的。
发布于 2012-12-14 02:45:35
在PATH环境中使用反斜杠和斜杠的组合看起来更像是一个问题。斜杠用于*nix,反斜杠用于WIN和DOS。客户端、DBLOCALE、DBDATE等可以根据所使用的*nix外壳在WIN/DOS和.profile、.cshrc、.login等文件中设置。只要INFORMIXDIR环境指向已安装的目录,就可以在任意目录中安装Informix二进制文件和其他支持文件。我在C:\INFORMIX中安装了11.70.FC6,在C:\DBSPACES中安装了dbspaces。
https://stackoverflow.com/questions/13865042
复制相似问题