2012-02-23 110 views
1

我尝试使用IBM.Data.Informix(位于C:\Program Files\IBM\IBM DATA SERVER DRIVER\bin\netf20_32\IBM.Data.Informix.dll)连接到informix服务器11.5。我使用VB2008,当我尝试连接时会引发错误invalid argumentIBM.Data.Informix.dll引发异常c#连接informix

问题在哪里?谢谢

public static IfxConnection MAkeConnInformix() 
    { 
     IfxConnection cnn = new IfxConnection(); 
     string error = ""; 
     try 
     { 
      string ConnectionString = Database=mydbname;Host=10.8.8.50;Server=mainserver_net;Service=1526; Protocol=onsoctcp;UID=myuser;Password=mypass"; 
      cnn.ConnectionString = ConnectionString; 
     } 
     catch (Exception ex) 
     { 
      error = ex.Message; 
     } 
     return cnn; 
    } 
+1

http://stackoverflow.com/questions/3407093/connecting-to-informix-using-net – 2012-02-24 00:04:42

+0

尝试删除'协议= onsoctcp'你有32位或64位驱动程序? – 2012-02-24 00:05:24

+0

您是否必须使用IBM.Data.Informix?如果不是,那么您可以使用自IBM Informix以来的[IBM Data Server .NET提供程序](http://www.ibm.com/developerworks/data/library/techarticle/dm-1007dsnetids/index.html?ca=drs-)。 NET Provider'不再为新的.NET API增强。 – Filip 2012-02-24 08:27:18

回答

1

如果由于区域设置有问题而无法连接,请将属性添加到连接字符串中。我不使用.NET,但在JDBC这样的Informix连接字符串与波兰的语言环境信息的样子:

jdbc:informix-sqli://127.0.0.1:9088/test_db:informixserver=ol_local;DB_LOCALE=pl_PL.CP1250;CLIENT_LOCALE=pl_PL.CP1250;charSet=CP1250 

在清单1中的http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/有例子说,DB_LOCALE和其他可添加到.NET Connet的字符串/

1

的问题是,Informix的有两个本地驱动程序:SQLI和DRDA(或数据服务器驱动程序)。您正在引用DRDA驱动程序,但您使用的是SQLI驱动程序中的连接字符串语法。例如关键字协议只存在于SQLI中。驱动程序和示例连接字符串之间的差异在这里:Get started with the IBM Data Server .NET Provider for Informix

所有关键字列表:IBM Data Server Driver configuration keywords - 难以使用,因为大部分关键字与Informix无关。