环境部署:(Win7 及 WinServer2008 测试通过)
1.安装informix client sdk: clientsdk.4.10.FC4DE.WIN版本
2.ADO方式:
添加注册表:SqlHosts->gbaseserver(如果不行还需要添加项:服务器IP)->添加键:HOST PROTOCOL SERVICE
程序实现,添加引用:clinet sdk 的bin目录下IBM.DATA.INFORMIX
代码:
//informix gbase
using IBM.Data.Informix;
using IBM.Data.Utilities;<span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;"> </span>
const string HOST = "xx.xxx.xx.5";//IP地址
const string SERVICENUM = "xxx"; //端口
const string SERVER = "gbaseserver";//gbase版本
const string DATABASE = "xxx";//数据库
const string USER = "";
const string PASSWORD = "";
const string DB_LOCALE = "zh_cn.GB18030-2000";
const string CLIENT_LOCALE = "zh_cn.GB18030-2000";
const string NEWCODESET = "GB18030,GB18030-2000,5488";
string ConnectionString = "Host = " + HOST + "; " +
"Service=" + SERVICENUM + "; " +
"Server=" + SERVER + "; " +
"Database=" + DATABASE + "; " +
"User Id=" + USER + "; " +
"Password=" + PASSWORD + "; " +
// "Password=" + PASSWORD + "; ";
//"NEWCODESET=" + NEWCODESET + "; " +
"DB_LOCALE=" + DB_LOCALE + "; " +
"CLIENT_LOCALE=" + CLIENT_LOCALE + "; ";
IfxDataReader rd;
int i = 0;
Boolean testStatus = true;
try
{
using (IfxConnection conn = new IfxConnection(ConnectionString))
{
conn.Open();
using (IfxCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select count(*) from informix.t01_ssc";
rd = cmd.ExecuteReader();
rd.Read();
do
{
if (rd.HasRows)
{
//Assuming the table has two columns
//Console.WriteLine("{0}: {1}", rd[0], rd[1]);
}
} while (rd.Read());
}
conn.Close();
}
}
catch (IfxException exc)
{
Console.WriteLine("Update: {0}", exc.Message);
foreach (IfxError error in exc.Errors)
Console.WriteLine("Error: ({1}): {0}", error.Message,
error.NativeError);
testStatus = false;
}
3.ODBC方式
配置系统DSN,并测试连接通过。
代码:
try
{
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString = @"Dsn=gbasetest;
Driver={INFORMIX 3.70 64 BIT};Host=10.185.35.5;Server=gbaseserver;Service=9088;
Protocol=onsoctcp;Database=fdmprddb;Uid=fdmwvidp;Pwd=fdmwvidp";
conn.Open();
OdbcDataAdapter adapter = new OdbcDataAdapter(sql, conn);
DataSet ds = new DataSet();
adapter.Fill(ds, "data");
conn.Close();
if (ds.Tables.Count > 0) return ds.Tables[0];
return null;
}
catch (Exception ex)
{
return null;
//MessageBox.Show("连接失败" + ex.Message);
}
}