您好,登錄后才能下訂單哦!
使用C#怎么連接Informix數據庫?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
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 數據庫升級的示意圖
兩種類型的 Informix 數據庫升級的示意圖
正文
最近在工作中遇到了需要連接Informix數據庫的問題,在通過研究后發現了可以通過多種方式實現,我選擇的是通過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(); } } }
在調試過程中會發現出現異常(System.DllNotFoundException:“無法加載 DLL“IfxDotNetIntrinsicModule.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。”),具體如圖:
通過提示可以看到找不到IfxDotNetIntrinsicModule.dll,我通過在安裝Informix數據庫的路徑中找到了這個包放到了bin文件夾下后
就能正常運行了。
另一個問題就是在連接串中最開始db_locale的值我是給的utf8,按照這個也會出現異常情況,異常代碼為(ERROR [HY000] [Informix .NET provider][Informix]Database locale information mismatch. ),截圖如下:
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。