僅使用 .dll 引用通過 .Net 連接到 IBM DB2
我想通過引用 .dll 並且不在伺服器上安裝任何軟體,使用 .Net 和 C# 連接到 DB2 數據庫,特別是 iSeries 版本。目前我們使用IBM.Data.DB2.iSeries.dll,它作為 iSeries 訪問 Windows 的一部分安裝。我不想安裝所有這些。但顯然我沒有選擇,因為其他提供商IBM.Data.DB2.dll還要求您安裝軟體,然後它才能根據 stackoverflow 文章的這個工作:IBM.Data.DB2
是否可以通過簡單地在程式碼中引用 .dll 而不在伺服器上安裝其他軟體來從 .Net c# 程式碼連接到 DB2?
我知道您可以使用 Java 和 JT Open 工具箱 ( <http://jt400.sourceforge.net/> ) 做到這一點。為什麼你不能用 .Net 做到這一點?
這是我們目前如何使用 IBM.Data.DB2.iSeries.dll 的 BASIC 範例。
String sql = "SELECT 1 FROM SCHEMAX.TABLEX"; System.Data.IDbConnection connection = null; IDataReader reader = null; try { connection = new iDB2Connection(ConfigurationManager.ConnectionStrings.ConnectionString); connection.Open(); IDbCommand command = connection.CreateCommand(); command.CommandType = CommandType.Text; command.CommandText = sql; reader = command.ExecuteReader(); } finally { try { reader.Close(); } catch (Exception ex) { } try { connection.Close(); }catch (Exception ex) { } }謝謝你的時間,韋爾齊
我的問題在 IBM 論壇中得到了解答。以下是答案。
<https://www.ibm.com/developerworks/community/forums/html/threadTopic?id=77777777-0000-0000-0000-000014491597>
答案1: 嗨 Welzie,雖然我不熟悉 JT Open 產品,但它很可能基於 Type 4 JDBC 驅動程序,它是客戶端上的純 Java 驅動程序(與需要客戶端上的非 Java 組件)。作為僅 Java 的驅動程序,允許 JT Open 執行您所描述的操作。然而,.NET 驅動程序具有更複雜的依賴結構,因此需要在客戶端上放置多個 DLL,包括託管和非託管。此外,與 iSeries 伺服器的連接還需要在客戶端上提供 DB2 Connect 許可證。因此,支持 .NET 連接到 DB2 伺服器所需的最小客戶端安裝是 IBM 數據伺服器驅動程序(安裝了大約 40 MB)。IBM Data Server Driver 是一個免費分發的客戶端軟體包,可以從 IBM 網站下載。但是,如上所述,要連接到 iSeries 伺服器,您還需要 DB2 Connect 許可證。
問候,亞歷克斯
回答 2 : IBM.Data.DB2.iSeries.dll 提供程序需要 IBM i Access for Windows 產品的許多其他部分,例如處理 TCP/IP 通信堆棧、安全/登錄處理、CCSID 轉換等。它不能複製或安裝為獨立的 dll。