在RPG程序(AS/400上的IBM语言之一)中,我可以"链接"到文件中以查看文件中是否存在记录(例如,某个客户记录).如果是,那么我可以使用新数据立即更新该记录.如果记录不存在,我可以写一条新记录.代码如下所示:
Customer Chain CustFile 71 ;turn on indicator 71 if not found
if *in71 ;if 71 is "on"
eval CustID = Customer;
eval CustCredit = 10000;
write CustRecord
else ;71 not on, record found.
CustCredit = 10000;
update CustRecord
endif
Run Code Online (Sandbox Code Playgroud)
我不熟悉SQL/C#,我想知道是否有办法从文件中进行随机检索(这就是RPG中的"链").基本上我想看看是否存在记录.如果是,请使用一些新信息更新记录.如果没有,那么我想写一个新的记录.我确信这是可能的,但不太确定如何去做.任何建议将不胜感激.
as/400 ILE允许将来自不同语言的过程编译成模块,然后绑定在一起以制作单个程序.我正在尝试使用包含从我的CL模块调用的C函数的模块来完成此操作,该模块是入口模块.
C模块源:mylib/myfile/csource
int getValue(void){
return 20;
}
Run Code Online (Sandbox Code Playgroud)
CL模块源:mylib/myfile/clsource
pgm
dcl var(&NUM) type(*INT)
callprc prc(getValue) rtnval(&NUM) /* <== Calling C function. */
endpgm
Run Code Online (Sandbox Code Playgroud)
然后我将每个文件编译成自己的模块.
crtcmod module(cmodule) srcfile(myfile) srcmbr(csource)
crtclmod module(clmodule) srcfile(myfile) srcmbr(clsource)
Run Code Online (Sandbox Code Playgroud)
这两个编译,没问题.只是,当我尝试从这两个模块创建程序时,ILE绑定器抱怨CL源中的函数getValue未定义,程序创建失败.
crtpgm pgm(mypgm) module(clmodule cmodule) entmod(clmodule) detail(*basic)
Run Code Online (Sandbox Code Playgroud)
crtpgm给我的错误:
Unresolved references........................: 1
Symbol Type Library Object Linked Name
*MODULE mylib clmodule *YES getValue
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我被要求研究两个应用程序服务器的优点/缺点,但我是这个领域的新手,并且很难找到两个平台的公正比较.
我理解这是一个广泛的问题,我讨厌我不能给出一个非常具体的用例(除了它将是一个组织中的实现,没有专门管理的全职管理员,它将在混合运行针对JD Edwards/Oracle和SQLServer的环境).
有没有人知道任何(最近发布的)内容做了一个合理的比较,或者任何提供任何洞察力可能是更好的选择和原因.任何帮助将不胜感激.
我们需要从 .NET (C#) 连接到 AS/400 并访问(读取和写入)数据。
问题是数据存储在大型机上的关系文件中,而不是 DB2 数据库中。
实现这一目标的最佳方法是什么?我很想使用 ADO.NET 实体框架类型解决方案,但我相信兼容的数据提供程序仅适用于 DB2。
是否有可能使用某些指标确定在RPG程序中使用哪个键(使用显示文件)?我知道功能或一些命令键是可行的.但我需要确定键,如:'+','S','/'等.是否有一些代码用于所有键盘键?
先谢谢你的一些线索,JS
我有一个简单的表格,数据如下:
col_1
==========
haddock
cod
hake
mackerel
tench
sprat
dace
rudd
pike
gudgeon
....
Run Code Online (Sandbox Code Playgroud)
我想选择数据,以便我可以输出5列:
col_1 col_2 col_3 col_4 col_5
======== ======== ======== ======== ========
haddock cod hake mackerel tench
sprat dace rudd pike gudgeon
...
Run Code Online (Sandbox Code Playgroud)
有一个很好的方法来做到这一点?NB iSeries DB2 SQL
我在VS2012中设置了2个服务器连接,一个DEV和PROD.这两个连接是DB2/AS400.是否有简单的方法从DEV查询,然后运行INSERT到PROD?
我知道我可以创建一个程序来查询DEV端,将结果存储在DataGrid或ListView控件中,然后循环并插入到PROD中,但我想知道是否有一种简单的方法可以通过SQL本身来做到这一点?
我正在运行DB2 for i,V7R2 TR3.
我被告知打开游标会提供很多开销,应该尽可能避免.从我所读到的,使用EXECUTE INTO var1 USING var2是另一种选择,但我不能让它工作.我收到SQL0104错误.
这是我的存储过程:
BEGIN
DECLARE STMT1 VARCHAR ( 500 ) ;
SET STMT1 = 'SELECT SUBSTR (''' || TRIM(ITEM) || ''' , ( LENGTH ( TRIM ( PREFIX ) ) + 1 ) , ( 20 - LENGTH ( TRIM ( PREFIX ) ) ) ) ' ||
'FROM MYLIB.MYTABLE ' ||
'WHERE PREFIX = SUBSTR(''' || TRIM(ITEM) || ''', 0,LENGTH ( TRIM ( PREFIX ) ) + 1 …Run Code Online (Sandbox Code Playgroud) 有人可以用完整的c#代码帮助我用SPLF0200格式调用QUSLSPL.我能够调用该程序,但不知道如何捕获/读取输出.我是这个领域的新手.感谢您的帮助.
这是我的代码.
cwbx.ProgramParameters parameters = new cwbx.ProgramParameters();
//user space name
parameters.Append("usrspcnam", cwbrcParameterTypeEnum.cwbrcInout, 20);
StringConverter stringConverterUsrSpaceNm = new cwbx.StringConverter();
stringConverterUsrSpaceNm.Length = 20;
parameters["usrspcnam"].Value = stringConverterUsrSpaceNm.ToBytes("HRAHMAN QGPL ");
//Format
parameters.Append("frmname", cwbrcParameterTypeEnum.cwbrcInout, 8);
StringConverter stringConverterFrmname = new cwbx.StringConverter();
stringConverterFrmname.Length = 8;
parameters["frmname"].Value = stringConverterFrmname.ToBytes("SPLF0200");
//User Name
parameters.Append("usrnam", cwbrcParameterTypeEnum.cwbrcInout, 10);
StringConverter stringConverterUsrnam = new cwbx.StringConverter();
stringConverterUsrnam.Length = 10;
//parameters["usrnam"].Value = stringConverterUsrnam.ToBytes("*CURRENT");
parameters["usrnam"].Value = stringConverterUsrnam.ToBytes(" ");
//qualified output queue
parameters.Append("cola", cwbrcParameterTypeEnum.cwbrcInout, 20);
StringConverter stringConverterCola = new cwbx.StringConverter();
stringConverterCola.Length = 20;
//parameters["cola"].Value = stringConverterCola.ToBytes("*ALL");
parameters["cola"].Value = …Run Code Online (Sandbox Code Playgroud) 看不到System i在线资源itjungle.com对tinyint的任何引用,我想知道是否有可能使用它?在IBM和midrange.com上引用了它,但这并没有真正帮助: