我正在使用IBM iSeries Access for Windows软件包连接到AS/400存储过程层.这提供了一个.NET DLL,其类与System.Data命名空间中的类相似.因此,我们使用它们的连接类实现并为其提供连接字符串.
有谁知道如何修改连接字符串以指示它应该使用的默认库?
有没有人有链接和资源从Java连接到AS400?
我记得几年前,有人告诉我一个连接器,它模拟键盘上的KeyStrokes和其他直接连接的"最纯粹"的方法.
在网络上我发现了很多链接,但我找不到一个完整的产品来做到这一点(我可能没有使用正确的关键字).
编辑
谢谢你的答案:
我们正在寻找的是一种访问AS400内部数据和/或它使用的屏幕的方法,并将它们暴露给其他重新使用的新应用程序.既可以作为某种Web服务,也可以直接通过Java(而java将使用webservices公开操作)
提前致谢.
编辑
根据MicSim的帖子,我也发现了这个链接:
http://www.ibm.com/developerworks/library/ws-as400/index.html
我在AS400上运行PHP.Git也可以安装在AS400上吗?我想用它来维护版本控制.
我从讲师那里听说过RPG编程.我想尝试一下.它的问题在于,我如何进行编程?我不知道操作系统和IDE是否适合这些需求.有帮助吗?
我有一个名为"my.test"的DB2文件.DB2文件名包含一个点'.'
如果我尝试通过strsql运行以下查询:
select * from my.test
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Token . was not valid. Valid tokens: FOR USE SKIP WAIT WITH FETCH ORDER UNION EXCEPT OPTIMIZE.
Run Code Online (Sandbox Code Playgroud)
有没有解决的办法?我尝试用引号括起来,但这没有用.
我正在尝试在iSeries上创建一个新命令,其中一个参数必须是使用标准LIBRARY/FILE MEMBER语法的文件名,类似于
MYCMD FILE(MYLIB/MYFILE MYMEMBER)
Run Code Online (Sandbox Code Playgroud)
甚至
MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER)
Run Code Online (Sandbox Code Playgroud)
我试过了 :
但我找不到如何创建一个接受值为限定对象名称的参数,如与CPYTOIMPF一起使用的FROMFILE参数.
UPDATE
JamesA的答案很好,但不知怎的,我的CL变量中有两个额外的字符:
CMD
PARM KWD(FILE) TYPE(FNAME) PROMPT('CL +
source' 1)
FNAME: ELEM TYPE(FILE) PROMPT('File')
ELEM TYPE(*NAME) LEN(10) PROMPT('Source +
member')
FILE: QUAL TYPE(*NAME) LEN(10)
QUAL TYPE(*NAME) DFT(*CURLIB) SPCVAL(*CURLIB) PROMPT('Library') LEN(10) MIN(0)
Run Code Online (Sandbox Code Playgroud)
CL
PGM PARM(&PFIC &OUTFILE &CODEPAGE)
DCL VAR(&PFIC) TYPE(*CHAR) LEN(32)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10)
CHGVAR VAR(&FILE) VALUE(%SST(&PFIC 3 10))
CHGVAR VAR(&LIB) VALUE(%SST(&PFIC 13 10))
CHGVAR VAR(&MEMBER) VALUE(%SST(&PFIC 23 …Run Code Online (Sandbox Code Playgroud) 我的目标是从RPG函数启动Java调用Web服务.(我知道,它很长,但它是我们需要的)
我/JavaLib在AS400上创建了一个文件夹,并复制了我们需要的所有必需的外部JAR.
使用静态方法创建Java类WebServiceCaller.Call()以调用Web Service.当我运行我的RPG程序时,一切都很好,RPG调用此方法.
我得到一个Java异常:
信息 ....:调用Java方法(CGD F)时收到Java异常.
原因.....:程序WAL60326/WEBSERCALR中的RPG过程WEBSERCALR在
使用签名"(LwebService.Input;)LwebService.Output;"调用方法"Call"时收到Java异常"java.lang.NoClassDefFoundError:javax.xml.rpc.ServiceException" 在类
"webService.WebServiceCaller"中.
CLASSPATH变量:
/ JavaLib:/家庭/ WAL60326/WebServiceCaller
所以我相信我的RPG和Java类很好,我相信我已经设置了我的CLASSPATH变量.不确定还有什么要检查.
所以我需要的jar文件是jaxrpc.jar我检查过的; 它确实存在于我的/JavaLib.能够在AS400上检查我的Java版本java version "1.5.0".并按照这些说明检查我的操作系统是否为V6R1.
可能是我的Java版本已经过时了,这个Jar文件要加载/工作吗?这甚至是可能吗?
这是我的源代码:
Java:WebServiceCaller.Java
package webService;
import java.rmi.RemoteException;
import stocklistGetBids.GetBidsProxy;
public class WebServiceCaller {
public static Output Call(Input in) { // Input Class, is just a way to hold all the input together
Output out = null; // Output Class, holds all the output together
try …Run Code Online (Sandbox Code Playgroud) 我希望我能用RPGLe做一些反思.通过反思,我的意思是:'在运行时确定对象功能的过程或机制.'
想象一下,你有这个数据结构:
D DS_Format DS Qualified Based(pDS_Format)
D Type 20I 0 Inz(1)
D Label 50A Inz('myLabel')
D Description 5000A Inz('myDescription')
Run Code Online (Sandbox Code Playgroud)
使用反射api,我可以这样做:
Reflection_ListSubfields(DS_Format);
Run Code Online (Sandbox Code Playgroud)
=>返回此数组:{'Type','Label','Description'}
然后,我可以这样做:
Reflection_GetSubfield(DS_Format : 'Label'); => return 'myLabel'
Run Code Online (Sandbox Code Playgroud)
我希望我也可以这样做:
Reflection_GetSubfieldType(DS_Format : 'Label'); => return 'A'
Reflection_GetSubfieldLength(DS_Format : 'Label'); => return 50
Reflection_GetSubfieldPrecision(DS_Format : 'Type'); => return 0
Run Code Online (Sandbox Code Playgroud)
有了这个,我希望我可以做这样的事情(有一些小工作):
SerializeXml(DS_Format); //I build xml with one line of code !
Run Code Online (Sandbox Code Playgroud)
得到:
<DS_Format>
<Type>1</Type>
<Label>myLabel</Label>
<Description>myDescription</Description>
</DS_Format>
Run Code Online (Sandbox Code Playgroud)
与DeserializeXml(myXml)相反;
反思会帮助我建立真正酷的apis.有什么办法吗?
任何人都知道如何在 python 中建立连接来连接 as400 iseries 系统并使用参数调用任何 as400 程序。
例如如何通过python连接as400来创建库。我想从 python 脚本调用“ CRTLIB LIB(TEST) ”。
这是我连接 DB2 数据库的代码。
import pyodbc
connection = pyodbc.connect(
driver='{iSeries Access ODBC Driver}',
system='ip/hostname',
uid='username',
pwd='password')
c1 = connection.cursor()
c1.execute('select * from libname.filename')
for row in c1:
print (row)
Run Code Online (Sandbox Code Playgroud) 我有一个要求,我需要将数组数据结构元素返回给调用程序。最初我想到使用数组数据结构(9999-最大暗淡)作为调用程序的参数。有 50 个调用程序。只有一些程序需要这个数组数据。我被要求使用临时文件(qtemp)来插入和检索。我实现了并且它工作得很好。想知道比我们迄今为止实现的更好的解决方案(需要并发)。谢谢
ibm-midrange ×10
rpg ×3
java ×2
rpgle ×2
.net ×1
database ×1
db2 ×1
db2-400 ×1
git ×1
interop ×1
jar ×1
jvm ×1
php ×1
python-2.7 ×1
python-3.x ×1
reflection ×1
unix ×1