[英]I'm trying to code solutions for an AS400 using C#, where can I find the cwbx.dll?
[英]How to set library list using cwbx.dll and AS400System class from C# to IBM i (iSeries)
我使用客戶端訪問驅動程序對 IBM i(一個 iSeries)進行 sql 調用。 使用驅動程序時,我可以指定在發出 sql 命令/函數時將使用的庫列表。
我現在需要從 C# 訪問 iSeries 並調用 CL/RPGLE 程序。 我發現在添加對 cwbx.dll 的引用后,我可以創建一個 AS400System 對象。 但是,我不確定如何設置庫列表並且無法找到有關 cwbx.dll 的文檔。 有沒有其他人能夠使用這個對象來設置庫列表?
詢問並回答,我知道。 但這是我對提出的問題的回答。
CHGLIBL LIBL(<space-separated list of libraries>)
的命令CHGLIBL LIBL(<space-separated list of libraries>)
將強制 AS/400 用戶庫列表成為所需的列表。 它還強制庫列表與指定的順序相同。
此外,在調用 AS/400 程序(尤其是 CL 的)時,IMO、CWBX API 提供比 SQL 接口更多的錯誤詳細信息。
根據此文檔:“CWBX.DLL(編程接口)允許以編程方式進行數據傳輸操作”
那不是你想要做的。
您可能希望使用DB2 for i .NET 提供程序。
當您在 IBm iAccess 安裝期間選擇“程序員工具包”時,將安裝提供程序的文檔。
進行了更多挖掘,CWBX.DLL 的文檔可以在以下位置找到:
C:\\Program Files (x86)\\IBM\\Client Access\\MRI2924\\cwbx.hlp
您似乎無法操作命令的庫列表。 僅通過 DatabaseUserLibraryList 對象傳輸數據。
從 .NET 調用 RPGLE/CL 的推薦方法是將它們作為 SQL 存儲過程調用。 從技術上講,考慮到操作系統基於對象的特性,盒子上的每個 *PGM(或 *SRVPGM 中的過程)對象都已經是一個存儲過程,可以使用 SQL 調用命令隱式調用。 但是,建議使用帶有EXTERNAL NAME
子句的CREATE PROCEDURE
語句顯式定義 RPG / CL 接口到數據庫,如下所示。
這篇文章的例子
假設您有一個名為 CUSTINFO 的 *PGM,具有以下程序界面(又名 *ENTRY PLIST)
D CustInfo PI
D CustNo 5P 0
D Name 15A
D City 25A
D State 2A
D Active 1P 0
在輸入 CustNo 的情況下,其余參數用作輸出。 然后,您可以通過運行以下命令,將該程序顯式定義為 SQL 存儲過程:
CREATE PROCEDURE GetCustInfo
(IN CustNo DEC (5,0), OUT Name CHAR (15), OUT City CHAR(25),
OUT St CHAR(2), OUT Act DEC(1,0))
EXTERNAL NAME MYLIB/CUSTINFO
LANGUAGE RPGLE
PARAMETER STYLE GENERAL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.