Web Application连接远程主机上的informix数据库很简单,直接在web.config中如下配置:
<connectionStrings>
<add name="connODBC" connectionString="Dsn=amsdb;uid=dmmgr;pwd=ams;database=sdmis" providerName="System.Data.Odbc"/>
</connectionStrings>
在程序中引用这个连接字符串创建连接对象即可。
但在Console Application中通过ODBC方式连接数据库,数据源DSN被默认为是通过SQL SERVER DRIVER来连接的,所以连Informix会报错。
但可以通过OleDbConnection来连接。
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = connStr;
OleDbDataAdapter adapter = new OleDbDataAdapter(strSql, conn);
DataSet ds = new DataSet();
adapter.Fill(ds);
连接字符串如下:
connStr = "Provider=Ifxoledbc;Driver=IFXOLEDBC;"
+ "Data Source=sdmis@amsdbsvr;"
+ "User id=dmmgr;"
+ "Password=ams;Persist Security Info=true;";
其中amsdbsvr是informix server的 servername,配置在informix所在机器的sqlhosts这个文件中.
如将之改为informix所在机器的IP,报如下错:
Sqlhosts文件位于informix所在机器的如下目录:${INFORMIXDIR}/etc/sqlhosts
内容如下所示:
要正常使用OLEDB连接informix
在安装Informix 客户端的机器上运行C:/Program Files/Informix/Connect/bin/regcopy.exe 完成注册表的设置。
可能还要在客户机(即ConsoleApp运行的机器)上配置系统环境变量INFORMIXSERVER