Csharp/C#教程:C#连接Informix数据库的问题分享

引言

Informix11与之前版本的Informix相比,新增了很多特性,如SQL语句跟踪、非阻断的检查点、SDS辅节点、星型连接、自动存储扩展、图形界面的管理工具OAT等,并且在性能上有了很大的提升。另外,由于Informix版本7、9、10已进入EOS(EndOfSupport)状态,所以很多Informix用户纷纷选择将Informix升级到版本11。

Informix数据库升级简介

Informix数据库升级是指把使用的Informix数据库从低版本转化为高版本。对Informix数据库进行升级是一项系统工程,包括升级前的测试、升级前的检查、升级操作过程、升级后的测试、升级后的调优等。

Informix数据库升级有两种类型:in-place和non-in-place。In-place升级中,新版本的Informix使用的数据文件与旧版本的Informix相同,数据库管理员无需导出导入数据。Non-in-place升级中,新版本的Informix使用的数据文件与旧版本的Informix不同,数据库管理员需要导出导入数据。

In-place升级比较简单,升级操作时间短。non-in-place升级比较复杂,升级操作时间长,所需的硬件资源多,风险较小。在一些情况下我们只能使用non-in-place升级,例如改变了硬件或操作系统。

两种类型的Informix数据库升级的示意图如图1所示。

图1.两种类型的Informix数据库升级的示意图

C#连接Informix数据库的问题

两种类型的Informix数据库升级的示意图

正文

最近在工作中遇到了需要连接Informix数据库的问题,在通过研究后发现了可以通过多种方式实现,我选择的是通过IBMInformix.NETProvider。该方式需要引用IBM.Data.Informix.dll。

usingIBM.Data.Informix; usingSystem;7 namespaceInformixLinkTest { classProgram { staticvoidMain(string[]args) { try { //Openaconnection IfxConnectionconn=newIfxConnection( "Host=127.0.0.1;Service=9098;" +"Server=informixserver;Database=MyDatabase;" +"UserID=informix;password=MyPassword;db_locale=en_us.819" ); conn.Open(); IfxDataReaderrd; using(IfxCommandcmd=conn.CreateCommand()) { cmd.CommandText="select*fromsimpletable"; rd=cmd.ExecuteReader(); rd.Read(); do { if(rd.HasRows) { ///Assumingthetablehastwocolumns Console.WriteLine("{0}",rd[0]); } }while(rd.Read()); } conn.Close(); } catch(IfxExceptione) { Console.WriteLine(e.ToString()); Console.ReadLine(); } } }

在调试过程中会发现出现异常(System.DllNotFoundException:“无法加载DLL“IfxDotNetIntrinsicModule.dll”:找不到指定的模块。(异常来自HRESULT:0x8007007E)。”),具体如图:

C#连接Informix数据库的问题

通过提示可以看到找不到IfxDotNetIntrinsicModule.dll,我通过在安装Informix数据库的路径中找到了这个包放到了bin文件夹下后

C#连接Informix数据库的问题

就能正常运行了。

另一个问题就是在连接串中最开始db_locale的值我是给的utf8,按照这个也会出现异常情况,异常代码为(ERROR[HY000][Informix.NETprovider][Informix]Databaselocaleinformationmismatch.),截图如下:

C#连接Informix数据库的问题

最后将其设置为db_locale=en_us.819后就可正常连接到informix数据库。

上述就是C#学习教程:C#连接Informix数据库的问题分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/903925.html

(0)
上一篇 2021年10月21日
下一篇 2021年10月21日

精彩推荐