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

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

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

引言

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

Informix 數(shù)據(jù)庫(kù)升級(jí)簡(jiǎn)介

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

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

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

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

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

兩種類(lèi)型的 Informix 數(shù)據(jù)庫(kù)升級(jí)的示意圖

正文

最近在工作中遇到了需要連接Informix數(shù)據(jù)庫(kù)的問(wèn)題,在通過(guò)研究后發(fā)現(xiàn)了可以通過(guò)多種方式實(shí)現(xiàn),我選擇的是通過(guò)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)試過(guò)程中會(huì)發(fā)現(xiàn)出現(xiàn)異常(System.DllNotFoundException:“無(wú)法加載 DLL“IfxDotNetIntrinsicModule.dll”: 找不到指定的模塊。 (異常來(lái)自 HRESULT:0x8007007E)?!保?,具體如圖:

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

就能正常運(yùn)行了。

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

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

總結(jié)

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

相關(guān)文章

最新評(píng)論