小编mik*_*ike的帖子

将RPG与C#和SQL进行比较

在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中的"链").基本上我想看看是否存在记录.如果是,请使用一些新信息更新记录.如果没有,那么我想写一个新的记录.我确信这是可能的,但不太确定如何去做.任何建议将不胜感激.

c# sql rpgle ibm-midrange

2
推荐指数
1
解决办法
906
查看次数

as/400:从CL调用C程序

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)

我错过了什么?

module procedure call ibm-midrange

2
推荐指数
1
解决办法
352
查看次数

IBM WebSphere与Oracle Fusion

我被要求研究两个应用程序服务器的优点/缺点,但我是这个领域的新手,并且很难找到两个平台的公正比较.

我理解这是一个广泛的问题,我讨厌我不能给出一个非常具体的用例(除了它将是一个组织中的实现,没有专门管理的全职管理员,它将在混合运行针对JD Edwards/Oracle和SQLServer的环境).

有没有人知道任何(最近发布的)内容做了一个合理的比较,或者任何提供任何洞察力可能是更好的选择和原因.任何帮助将不胜感激.

oracle websphere oracle-fusion-middleware

1
推荐指数
1
解决办法
6555
查看次数

使用 .NET 访问 AS400 上关系文件(不是 DB2)中存储的数据的最佳方法?

我们需要从 .NET (C#) 连接到 AS/400 并访问(读取和写入)数据。

问题是数据存储在大型机上的关系文件中,而不是 DB2 数据库中。

实现这一目标的最佳方法是什么?我很想使用 ADO.NET 实体框架类型解决方案,但我相信兼容的数据提供程序仅适用于 DB2。

.net cross-platform ibm-midrange

1
推荐指数
2
解决办法
1831
查看次数

RPG:确定按下的键

是否有可能使用某些指标确定在RPG程序中使用哪个键(使用显示文件)?我知道功能或一些命令键是可行的.但我需要确定键,如:'+','S','/'等.是否有一些代码用于所有键盘键?

先谢谢你的一些线索,JS

ibm-midrange

1
推荐指数
1
解决办法
431
查看次数

使用iSeries DB2 SQL行到列

我有一个简单的表格,数据如下:

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

sql db2 db2-400 ibm-midrange

1
推荐指数
1
解决办法
5182
查看次数

跨多个服务器查询的简单方法?

我在VS2012中设置了2个服务器连接,一个DEV和PROD.这两个连接是DB2/AS400.是否有简单的方法从DEV查询,然后运行INSERT到PROD?

我知道我可以创建一个程序来查询DEV端,将结果存储在DataGrid或ListView控件中,然后循环并插入到PROD中,但我想知道是否有一种简单的方法可以通过SQL本身来做到这一点?

sql database db2 ibm-midrange

1
推荐指数
1
解决办法
75
查看次数

DB2/400替代打开游标

我正在运行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)

db2 db2-400 ibm-midrange

1
推荐指数
1
解决办法
422
查看次数

使用C#编写IBM iSeries API QUSLSPL

有人可以用完整的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)

c# api ibm-midrange

1
推荐指数
1
解决办法
997
查看次数

System i SQL是否支持tinyint?

看不到System i在线资源itjungle.com对tinyint的任何引用,我想知道是否有可能使用它?在IBM和midrange.com上引用了它,但这并没有真正帮助:

IBM表示支持tinyint被移植

midrange.com论坛帖子表明tinyint不属于ANSI标准

sql db2 db2-400 ibm-midrange

1
推荐指数
1
解决办法
303
查看次数