欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#連接Informix數(shù)據(jù)庫的問題

 更新時間:2020年03月02日 12:03:55   作者:aimevous  
這篇文章主要介紹了C#連接Informix數(shù)據(jù)庫的問題,本文給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下

引言

Informix 11 與之前版本的 Informix 相比,新增了很多特性,如 SQL 語句跟蹤、非阻斷的檢查點、SDS 輔節(jié)點、星型連接、自動存儲擴(kuò)展、圖形界面的管理工具 OAT 等,并且在性能上有了很大的提升。另外,由于 Informix 版本 7、9、10 已進(jìn)入 EOS (End Of Support) 狀態(tài),所以很多 Informix 用戶紛紛選擇將 Informix 升級到版本 11。

Informix 數(shù)據(jù)庫升級簡介

Informix 數(shù)據(jù)庫升級是指把使用的 Informix 數(shù)據(jù)庫從低版本轉(zhuǎn)化為高版本。對 Informix 數(shù)據(jù)庫進(jìn)行升級是一項系統(tǒng)工程,包括升級前的測試、升級前的檢查、升級操作過程、升級后的測試、升級后的調(diào)優(yōu)等。

Informix 數(shù)據(jù)庫升級有兩種類型:in-place 和 non-in-place。In-place 升級中,新版本的 Informix 使用的數(shù)據(jù)文件與舊版本的 Informix 相同,數(shù)據(jù)庫管理員無需導(dǎo)出導(dǎo)入數(shù)據(jù)。Non-in-place 升級中,新版本的 Informix 使用的數(shù)據(jù)文件與舊版本的 Informix 不同,數(shù)據(jù)庫管理員需要導(dǎo)出導(dǎo)入數(shù)據(jù)。

In-place 升級比較簡單,升級操作時間短。non-in-place 升級比較復(fù)雜,升級操作時間長,所需的硬件資源多,風(fēng)險較小。在一些情況下我們只能使用 non-in-place 升級,例如改變了硬件或操作系統(tǒng)。

兩種類型的 Informix 數(shù)據(jù)庫升級的示意圖如圖 1 所示。

圖 1. 兩種類型的 Informix 數(shù)據(jù)庫升級的示意圖

兩種類型的 Informix 數(shù)據(jù)庫升級的示意圖

正文

最近在工作中遇到了需要連接Informix數(shù)據(jù)庫的問題,在通過研究后發(fā)現(xiàn)了可以通過多種方式實現(xiàn),我選擇的是通過IBM Informix .NET Provider。該方式需要引用IBM.Data.Informix.dll。

using IBM.Data.Informix;
using System; 7 
namespace InformixLinkTest
{
 class Program
 {
  static void Main(string[] args)
  {
   try
   {
    // Open a connection
    IfxConnection conn = new IfxConnection(
    "Host=127.0.0.1;Service=9098;"
    + "Server=informixserver;Database=MyDatabase;"
    + "User ID=informix;password=MyPassword;db_locale=en_us.819"
    );
    conn.Open();
    IfxDataReader rd;
    using (IfxCommand cmd = conn.CreateCommand())
    {
     cmd.CommandText = "select * from simpletable";
     rd = cmd.ExecuteReader();
     rd.Read();
     do
     {
      if (rd.HasRows)
      {
       ///Assuming the table has two columns
       Console.WriteLine("{0}", rd[0]);
      }

     } while (rd.Read());
    }
    conn.Close();
   }
   catch (IfxException e)
   {
    Console.WriteLine(e.ToString());
    Console.ReadLine();
   }
 }
}

在調(diào)試過程中會發(fā)現(xiàn)出現(xiàn)異常(System.DllNotFoundException:“無法加載 DLL“IfxDotNetIntrinsicModule.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)?!保?,具體如圖:

通過提示可以看到找不到IfxDotNetIntrinsicModule.dll,我通過在安裝Informix數(shù)據(jù)庫的路徑中找到了這個包放到了bin文件夾下后

就能正常運行了。

另一個問題就是在連接串中最開始db_locale的值我是給的utf8,按照這個也會出現(xiàn)異常情況,異常代碼為(ERROR [HY000] [Informix .NET provider][Informix]Database locale information mismatch. ),截圖如下:

最后將其設(shè)置為db_locale=en_us.819后就可正常連接到informix數(shù)據(jù)庫。

總結(jié)

到此這篇關(guān)于C#連接Informix數(shù)據(jù)庫的問題的文章就介紹到這了,更多相關(guān)C#連接Informix數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論