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

时间:2012-12-13 17:17:30

标签: cron odbc cygwin informix

不确定这个去哪里。我有一个PHP脚本调用连接到Informix数据库的PERL脚本。当我将脚本运行到Windows cmd提示符时,此设置工作正常,但是当我尝试在cygwin中通过cron运行它时,它会失败

  

[Informix] [Informix ODBC Driver]无法加载转换共享库(DLL)。 (SQL-IM009)

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

  

[Informix] [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云实例上运行此操作,并且我正在尝试复制一个工作设置,以便我们可以将其移动到非现场位置。

2 个答案:

答案 0 :(得分:1)

事实证明,cygwin并不喜欢Client-SDK所在的目录。一旦我将它重新安装到C:/ IBM / Informix / Client-SDK,一切都开始工作了。我不确定问题是括号还是空格,但是让它们离开路径似乎可以解决问题。

答案 1 :(得分:0)

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