标签: ibm-midrange

32位和64位计算机之间的错误图像格式异常

我们有一个winforms应用程序,必须与AS400交谈.为此,我们在Winforms应用程序中导入了IBM.Data.DB2.iSeries类,并在我们的机器上安装了IBM System I Access for Windows.它必须具有System I Access,否则它将不与AS/400通信.在我的64位开发机器上一切正常.它也适用于客户端的64位机器.但是,当我们尝试在32位机器上安装它时,我们会遇到Bad Image格式异常.我们尝试只使用x86安装程序而不是任何cpu,但这不起作用(同样的坏图像异常).有任何想法吗?

vb.net visual-studio-2008 winforms ibm-midrange

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

iseries上Java应用程序的推荐位置

我有一个Java应用程序,我将使用CommandCall远程调用它.

目前我已将其放在/home/username文件夹中,并在JAVA命令的CLASSPATH参数中指定此文件夹.

但现在我必须将应用程序发送给客户端,似乎这些是可能的位置

但我没有在iSeries文档中找到推荐位置的提及.

那么在iSeries上部署Java应用程序的推荐位置是什么?

java ibm-midrange

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

AS400数据库 - 错误 - PWS98​​01 - 用户出口程序拒绝的功能

我试图使用ODBC驱动程序和VBA从远程计算机上的AS400数据库中读取数据.我可以成功建立连接,但没有查询返回数据.所有查询都会遇到错误"[IBM] [System i Access ODBC Driver] [DB2 for i5/OS] PWS98​​01 - 库SQLSECR0 QSYSMCD中的用户出口程序拒绝了该函数".请帮我...

vba ibm-midrange

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

使用所有页面读取AS400假脱机文件 - JAVA(JT400)

我正在尝试在JAVA中读取AS400假脱机文件.我用这段代码读了它.但问题是它只检索该假脱机文件的一个页面详细信息.但我想阅读并获取所有页面详细信息.谁知道怎么做?

提前致谢!

代码:

try {
    jTextArea1.setText(null);
    DefaultTableModel DTM =(DefaultTableModel) jTable1.getModel();
    int SR = jTable1.getSelectedRow();

    String SPLFNAME =  (String) DTM.getValueAt(SR, 0);
    String SPLFNUMBERT =  (String) DTM.getValueAt(SR, 1);
    String JOBNAME =  (String) DTM.getValueAt(SR, 3);
    String JOBUSER =  (String) DTM.getValueAt(SR, 4);
    String JOBFNUMBER =  (String) DTM.getValueAt(SR, 5);

    int SPLNO = Integer.parseInt(SPLFNUMBERT);

    AS400 sys = new AS400();
    SpooledFile sf = new SpooledFile( sys,          // AS400
                                      SPLFNAME,     // splf name
                                      SPLNO,        // splf number
                                      JOBNAME,      // job name
                                      JOBUSER,      // job user
                                      JOBFNUMBER ); // …
Run Code Online (Sandbox Code Playgroud)

java swing jtextarea jt400 ibm-midrange

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

调用传递数组的外部程序时如何使用LIKE关键字

我有以下RPGLE程序:

dmypgm            pr                  extpgm('MYPGM')
d  myarr                              like(myarr)
d  somevar                            like(somevar)

d myarr           s             64a   dim(100)
d somevar         s             65a

/free
 callp mypgm(myarr: somevar);
 *inlr = *on;
/end-free
Run Code Online (Sandbox Code Playgroud)

当我尝试在V6R1盒子上编译它时,我收到错误消息:

RNF5343 30      1 Array has too many omitted indexes; specification is ignored.
Run Code Online (Sandbox Code Playgroud)

一些文档告诉我:

RNF5343

数组有太多省略的索引; 规范被忽略了.

三十

原因.....:在赋值运算符右侧用作操作数的数组的省略索引数大于指定为赋值结果的数组的省略索引数.

恢复...:减少操作数的省略索引数; 或者增加结果的省略索引数.再次编译.

这不是很有用,因为这是一个程序调用,而不是尝试分配一个值(比如EVAL语句或其他东西).

如果我将外部程序调用的声明更改为:

dmypgm            pr                  extpgm('MYPGM')
d  myarr                        64a   dim(100)
d  somevar                            like(somevar)
Run Code Online (Sandbox Code Playgroud)

该程序将编译得很好.

那么如何将LIKE关键字与数组一起用于外部程序定义?

rpgle ibm-midrange

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

to_date与AS400

我写信给你是因为我不能to_date在AS400数据库上使用运算符.

使用Oracle数据库,我使用:

datefield >= to_date('01/01/2014','DD/MM/YYYY')
Run Code Online (Sandbox Code Playgroud)

但是使用AS400,我收到一个错误:

不兼容的运营商

我可以使用另一种功能来替换to_date吗?

sql db2 db2-400 to-date ibm-midrange

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

将JT400设置为使用端口23连接到IBM i(AS400)

我试图从我的Java程序连接到IBM中型(AS400)计算机,然后重设用户密码。使用Jt400.jar,我设法做到了。但是问题是,我需要将端口设置为专门使用端口23。我希望它按照tn5250的方式连接到AS400。从IBM网站在这里,我知道我可以利用这样做as400.connectToPort(23)

令我感到困惑的是,当我添加该方法时,我得到了一个java.lang.RuntimeException: java.lang.NegativeArraySizeException。我曾尝试寻找什么导致此异常导致我在这里和更多的解释在这里。这是我的代码:

public void executeSetPassword(final String userName, final GuardedString password)  {

    if ((userName != null) && (password != null)) {
        final String host = configuration.getHost();
        final String remoteUser = configuration.getRemoteUser();
        GuardedString passwd = configuration.getPassword();
        boolean isSuccessful;

        final AS400 as400 = new AS400();

        try {
            as400.setSystemName(host);
            as400.setUserId(remoteUser);

            passwd.access(new Accessor(){
                @Override
                public void access(char[] clearChars) {
                    try {
                        as400.setPassword(new String(clearChars));
                    }catch (Exception e) {
                        e.printStackTrace();
                    }
                }});

            as400.setGuiAvailable(false);
            as400.connectToPort(23);

            final CommandCall …
Run Code Online (Sandbox Code Playgroud)

java jt400 ibm-midrange

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

从CL程序调用GRTOBJAUT时,参数OBJ被切断

我已经制作了一个CL程序来简化更改所有者,USRPRF和对象的权限.它利用GRTOBJAUT等进行更改.这是参数定义:

         pgm        parm(&libobj &type &owner &usrprfown &user1 &auth1 +
                      &user2 &auth2 &user3 &auth3)
         ...
         dcl        var(&libobj) type(*char) len(21)
         dcl        var(&type) type(*char) len(10)
         dcl        var(&user1) type(*char) len(10)
         dcl        var(&auth1) type(*char) len(10)
         ...
Run Code Online (Sandbox Code Playgroud)

这就是我称之为GRTOBJAUT的方式:

         grtobjaut  obj(&libobj) objtype(*all) user(&user1) +
                         aut(&auth1)
Run Code Online (Sandbox Code Playgroud)

但是,只有前10个字符&libobj实际传递给GRTOBJAUT.我已经在调试器中验证了grtobjaut obj('MYLIB/TEST')尽管&libobj包含完整的字符串,但传递MYLIB/TEST1234的结果仍然存在.根据文档,这应该是GRTOBJAUT命令的正确语法,因此允许超过10个字符的长路径.实际情况并非如此吗?交互式GRTOBJAUT和CL GRTOBJAUT之间有区别吗?我该如何工作?

该程序是为v6.1编译的,并在支持v7.1的环境中运行.

编辑:同样的问题适用于CHGOBJOWN.

ibm-midrange

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

ILE RPG程序将无法编译

我是ILE RPG的新手.今天我开始从我的工作中找出书.在本章的其中一章中,有一些使用Substring函数的示例%SUBSTR.这是代码:

DMOD              S              5    INZ('VWXYZ')                     
DCON              S              5    INZ('abcde')                     
DLENGTH           S              5  0 INZ(2)                           
DSTART1           S              5  0 INZ(3)                           
DSTART2           S              5  0 INZ(4)                           
D*                                                                     
C     mod           DSPLY                                              
C     con           DSPLY                                              
C     start1        DSPLY                                              
C     start2        DSPLY                                              
C     length        DSPLY                                              
C*                                                                     
C                   EVAL      %SUBST(mod:3:2) = con                    
C*                                                                     
C                   EVAL      %SUBST(mod : 3 : 2) = %SUBST(con : 4 : 2)
C*                                                                     
C                   EVAL      %SUBST(mod:start1:length) =              
C                             %SUBST(con:start1:length)                
C*                                                                     
C                   EVAL      %SUBST(mod:start1-1:length) =            
C                             %SUBST(con:start2/2:length+1)            
C*                                                                     
C                   MOVE …
Run Code Online (Sandbox Code Playgroud)

rpgle ibm-midrange

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

使用C#调用AS400程序并从QTEMP中选择文件

我有一个ASP.Net应用程序来调用AS400程序,以便在QTEMP下创建一个文件.但是当我尝试从QTEMP中选择此文件时,它不存在.

我明白原因:调用程序和选择文件是不同的工作.我无法访问其他工作的QTEMP.

我对AS400知之甚少,我能找到的唯一方法就是在QTEMP以外的其他库下创建这个文件.但它会影响我不想做的其他应用功能.

我使用cwbx.dll来调用AS400程序,然后我使用IBM.Data.DB2.iSeries从QTEMP中选择文件.显然他们是两个连接打开.我不确定是否在as400概念下,它们可能是两个独立的工作.

这是调用程序的函数:

As400Caller1.CallAs400Program("myProgram", "myLibrary", paramsList1);
Run Code Online (Sandbox Code Playgroud)

这是CallAs400Program函数:

public void CallAs400Program(string programName, string libraryName, List<AS400Param> parameters) {

            try
            {
                system.Connect(cwbcoServiceEnum.cwbcoServiceRemoteCmd);

                //check connection
                if (system.IsConnected(cwbcoServiceEnum.cwbcoServiceRemoteCmd) == 1)
                {
                    //create a program object and link to the system
                    Program program = new Program();
                    program.LibraryName = libraryName;
                    program.ProgramName = programName;
                    program.system = system;

                    //create a parameter collection associated with the program and pass data
                    ProgramParameters prms = new ProgramParameters();
                    foreach (AS400Param p in parameters)
                    {
                        prms.Append(p.ParameterName, cwbrcParameterTypeEnum.cwbrcInout, p.ParameterLength);
                        if (!p.OutParam)
                        {
                            prms[p.ParameterName].Value …
Run Code Online (Sandbox Code Playgroud)

c# db2 asp.net-mvc ibm-midrange

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