首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 遠程連接 Informix 數據庫:連接字符串配置與客戶端設置全攻略

     編輯:程式設計綜合問答

場景:本地能連,遠程掛了

開發機通過 ODBC/OLEDB 直連本地 Informix 正常,但部署到用戶機器需遠程訪問 10.4.129.1 服務器,報錯「找不到服務器」或「連接超時」。

核心解決路徑

  1. 安裝 Informix Client SDK(含 SetNet32、ODBC 驅動)
  2. 配置網絡連接:運行 SetNet32 添加遠程服務器條目
  3. 建立系統 DSN:ODBC 數據源管理器 → 系統 DSN → 添加 Informix 驅動
  4. 驗證連通性:DSN 測試按鈕 / ilogin 命令行
  5. C# 代碼使用 DSN 或無 DSN 連接字符串

關鍵連接字符串模板

參考權威庫:connectionstrings.com/informix

// 方案 A:使用系統 DSN(推薦,避免密碼明文)
"DSN=InformixDSN;UID=myUser;PWD=myPass;"

// 方案 B:無 DSN 直連(需客戶端已配置 SetNet32)
"Server=myServerName;Database=myDb;Host=10.4.129.1;Service=1526;Protocol=onsoctcp;UID=myUser;PWD=myPass;"

// 方案 C:OLEDB Provider
"Provider=Ifxoledbc.2;Data Source=myServerName;User ID=myUser;Password=myPass;"

SetNet32 關鍵配置項

欄位說明示例
IBM Informix Server服務器別名,客戶端引用此名ol_informix1210
Host Name服務器 IP 或主機名10.4.129.1
Service Name端口號或服務名(需與 onconfig 中 DBSERVERNAME 一致)1526 / sqlexec
Protocolonsoctcp (TCP)、onipcshm (共享內存)onsoctcp
Options客戶端參數,如 csm=(GSSCSM) 加密留空即可

常見坑點

  • 防火牆:服務器端需放行 1526/tcp(或自定義端口)
  • 64/32 位不匹配:C# 編譯目標 x64 需安裝 64 位 Client SDK,Any CPU 勾選 "Prefer 32-bit" 則用 32 位驅動
  • 環境變量:INFORMIXDIR、INFORMIXSERVER、PATH 需包含 bin 目錄
  • 信任關係:$INFORMIXDIR/etc/hosts.equiv 或 .rhosts 配置信任主機

C# 代碼片段

using (var conn = new OdbcConnection(connStr)) {
    conn.Open();
    using (var cmd = conn.CreateCommand()) {
        cmd.CommandText = "SELECT FIRST 10 * FROM my_table";
        using (var reader = cmd.ExecuteReader()) {
            while (reader.Read()) Console.WriteLine(reader[0]);
        }
    }
}

總結

遠程連 Informix 核心在「客戶端配置」,而非代碼。先搞定 SetNet32 + 系統 DSN 測試通,再寫 C# 連接字符串,就能從「跪求」變「輕鬆搞定」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved