2010-07-28 55 views
12

Tôi muốn kết nối với cơ sở dữ liệu DB2, cụ thể là phiên bản iSeries, sử dụng .Net và C# bằng cách tham chiếu đến .dll và KHÔNG cài đặt bất kỳ phần mềm nào trên máy chủ. Hiện tại, chúng tôi sử dụng IBM.Data.DB2.iSeries.dll, được cài đặt như một phần của truy cập iSeries cho cửa sổ. Tôi không muốn phải cài đặt tất cả. Nhưng dường như tôi không có tùy chọn vì nhà cung cấp khác IBM.Data.DB2.dll cũng yêu cầu bạn cài đặt phần mềm trước khi nó hoạt động theo bài đăng trên stackoverflow này: IBM.Data.DB2Kết nối với IBM DB2 bằng .Net chỉ sử dụng tài liệu tham khảo .dll

Có cách nào để kết nối từ .Net C# code to DB2 bằng cách đơn giản tham khảo một .dll trong mã của bạn và KHÔNG cài đặt phần mềm khác trên máy chủ?

Tôi biết bạn có thể làm điều này với Java và hộp công cụ mở JT (http://jt400.sourceforge.net/). Tại sao bạn không thể làm điều này với. Net?

Dưới đây là ví dụ BASIC về cách chúng tôi hiện đang sử dụng IBM.Data.DB2.iSeries.dll.

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) { } 
} 

Cảm ơn thời gian của bạn, welzie

+0

Bạn không cần phải cài đặt phần mềm bổ sung trên máy chủ, nó được cài đặt sẵn với hệ điều hành. Ồ, bạn có nghĩa là khách hàng = P – ASalazar

Trả lời

8

Câu hỏi của tôi đã được trả lời trong một diễn đàn của IBM. Đây là những câu trả lời.

https://www.ibm.com/developerworks/forums/thread.jspa?threadID=335816

ANSWER1: Hi Welzie, Trong khi tôi không quen thuộc với sản phẩm JT mở mỗi nói, nó rất có thể dựa trên một trình điều khiển JDBC Loại 4, mà là một chỉ lái xe Java trên phía máy khách (trái ngược với trình điều khiển JDBC loại 2 cũ hơn yêu cầu một thành phần không phải Java trên máy khách). Là một trình điều khiển duy nhất của Java, cho phép JT Open làm những gì bạn mô tả. Tuy nhiên, Trình điều khiển .NET có cấu trúc phụ thuộc phức tạp hơn và do đó đòi hỏi nhiều DLL phải được đặt xuống trên máy khách, cả quản lý và không được quản lý. Hơn nữa, kết nối với máy chủ iSeries cũng sẽ yêu cầu giấy phép kết nối DB2 có sẵn trên máy khách. Do đó, việc cài đặt máy khách tối thiểu cần thiết để hỗ trợ kết nối .NET đến máy chủ DB2 là Trình điều khiển máy chủ dữ liệu IBM (cài đặt khoảng 40 MB). Trình điều khiển máy chủ dữ liệu của IBM là một gói ứng dụng khách phân phối tự do có thể được tải xuống từ trang web của IBM. Tuy nhiên, như tôi đã nói ở trên, để kết nối với một máy chủ iSeries, bạn cũng sẽ cần giấy phép kết nối DB2.

Kính trọng, Alex

ANSWER2: Nhà cung cấp IBM.Data.DB2.iSeries.dll đòi hỏi nhiều bộ phận khác của IBM i Truy cập cho sản phẩm Windows, ví dụ để xử lý các giao thức TCP/IP truyền thông ngăn xếp, bảo mật/đăng nhập xử lý, chuyển đổi CCSID, vv Nó không thể được sao chép hoặc cài đặt như là một dll độc lập.

+4

Đó là câu trả lời tôi mong đợi ... nhưng những ngày này rất nghèo cho IBM gói theo cách này. – BlueChippy

+2

Tôi biết. Chúng tôi có cùng một vấn đề. Sẽ tốt hơn nếu bạn có thể tránh bao giờ giao dịch với IBM, nhưng đôi khi bạn không có lựa chọn nào, và đó là một sự xấu hổ mà IBM không có đủ khả năng để làm điều này đúng. Bạn có thể thử một trong các sản phẩm trình điều khiển DB2 khác như Progress DataDirect, nhưng chúng đắt tiền. –

+2

@BlueChippy: Nếu bạn nghĩ rằng IBM nghèo của IBM để làm điều đó theo cách đó, bạn phải hoàn toàn sống động như thế nào những người khác như Microsoft làm điều đó. Hãy thử làm tương tự theo hướng ngược lại. – user2338816

Các vấn đề liên quan