标签: ibm-midrange

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

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

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

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

.net cross-platform ibm-midrange

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

基于 IBM AS400 的角色扮演游戏/系列

我们需要从基于 IBM AS400 的 rpg/iseries 程序访问 https api。

为了尝试这个,我们安装了“Mocha W32 TN5250”,但无法连接到会话。

是否可以从基于 IBM AS400 的 rpg/iseries 程序进行 https 调用?

rpg ibm-midrange

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

Db2 iseries 在重复键上插入

有人知道 DB2 for i (V6r1) 是否支持类似的东西

INSERT ON DUPLICATE KEY UPDATE.
Run Code Online (Sandbox Code Playgroud)

我需要使用连接进行更新,但不想使用子查询。

database db2 db2-400 ibm-midrange

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

iSeries 查询更改子查询结果行的选定 RRN

我正在尝试为可包含数百万行(每月最多 300 万行)的 iSeries 数据库表进行最佳 SQL 查询。每行的唯一键是其 RRN(相对记录号,即该行的物理记录号)。

我的目标是将表格与另一个小表格连接起来,为我提供其中一个数字列的文字描述。但是,涉及的行数可能超过 200 万,这通常会导致查询因内存不足而失败。所以我想重写查询以避免将大子集与任何其他表连接。因此,我们的想法是在给定月份内选择一个页面(最多 30 行),然后将该子集连接到第二个表。

然而,我遇到了一个奇怪的问题。我使用以下查询来检索我想要的页面行的 RRN:

    select t.RRN2    -- Gives correct RRNs
    from (
      select row_number() over() as SEQ,
        rrn(e2) as RRN2, e2.*
      from TABLE1 as e2
      where e2.UPDATED between '2013-05-01' and '2013-05-31'
      order by e2.UPDATED, e2.ACCOUNT
    ) as t
    where t.SEQ > 270 and t.SEQ <= 300    -- Paging
    order by t.UPDATED, t.ACCOUNT
Run Code Online (Sandbox Code Playgroud)

这个查询工作得很好,返回了我需要的行的正确 RRN。但是,当我尝试将子查询的结果与另一个表连接时,RRN 发生了变化。因此,我将查询简化为简单外部查询中的子查询,没有任何联接:

select rrn(e) as RRN, e.*
  from TABLE1 as e
  where …
Run Code Online (Sandbox Code Playgroud)

sql db2 db2-400 ibm-midrange

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

DB2 AS400 触发器

我的任务是找到一种将数据迁移到 DB2 AS400 数据库的方法。当在前端输入数据(当前是手动)时,系统会进行一些计算并将结果插入表中。

我的理解是它使用触发器来执行此操作。我对这些东西不太了解,但我已经编写了代码来直接将值插入到同一个表中。有没有办法让我弄清楚当用户手动输入数据时正在触发什么触发器?

我查看了 QSYS2/SYSTRIGGERS,除了对我来说没有多大意义之外,我没有看到属于包含我的表的 SCHEMA 的触发器。

这里的任何帮助都会很棒,因为我被困住了。

db2 db2-400 ibm-midrange

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

从 rpgle 过程返回值列表的方法

我正在寻找从rpgle.I 中的子过程返回多个值(如数组)的方法。我不想使用文件等来存储这个值。有人可以推荐任何好的方法来实现这一目标吗?

rpgle ibm-midrange

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

RPGLE 数据结构数组查找

我创建了一个数据结构数组,我想根据组合键进行查找。即在下面的 DS 中,如果 tblName 和 tblElement 和 tblDivision 匹配,我想查找并获取索引,然后返回 tblRes 值。

    D TblAryDs        DS                  qualified dim(9999)                    
    D  tblName                       3                                           
    D  tblElement                   10                                           
    D  tblDivision                   5                                           
    D  tblRes                        2                                           

//Not Sure How to do the below lookup
      idx = %lookup(tblName:TblAryDs(*).tblName) && %lookup(tblElement:TblAryDs(*).tblElement) && %lookup(tblDivision:TblAryDs(*).tblDivision);                                
      if idx > *zeros;                                                                                   
         return TblAryDs(*).tblRes;
      endif; 
Run Code Online (Sandbox Code Playgroud)

rpg rpgle ibm-midrange

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

IBMi DB2 SQL 创建表 - 表描述文本

我正在使用“创建表...”等创建 sql/ddl 描述的表。

如何向表/文件添加文本/描述?当您处理 dds 文件时,它只会调整源成员中的文本。

sql db2 ddl db2-400 ibm-midrange

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

如何检查CL中的变量是否为空?

我有这段代码。

IF         COND(%TRIM(&BLANK_VAR) *EQ '') THEN(DO)
            CALL       PGM(MY_PROGRAM) PARM(&BLANK_VAR)
ENDDO
Run Code Online (Sandbox Code Playgroud)

我想检查是否&BLANK_VAR是空字符串。但是,由于错误消息,我的程序无法编译:

* CPD0126 30  Operand not valid or operator missing in COND.
Run Code Online (Sandbox Code Playgroud)

这是一个问题%TRIM吗?我尝试使用%LEN但它给了我声明的变量的长度,而不是里面的实际数据。

&BLANK_VAR长度为 10 个字符。我是否必须这样做:

IF COND(&BLANK_VAR *EQ '          ')
Run Code Online (Sandbox Code Playgroud)

control-language ibm-midrange

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

在 COBOL iSeries AS/400 中使用 QCMDEXC 从命令读回输出

我在 COBOL 中使用 QCMDEXC 来执行 QShell 命令,如下所示:

   01 PROGRAM-VARIABLES.                        
      05 CL-CMD PIC X(33)                       
                VALUE "STRQSH CMD('LS')".
      05 PACK-VAL PIC 9(10)V9(5) COMP-3         
                  VALUE 16.                                    
   MAINLINE.                                    
       CALL "QCMDEXC" USING CL-CMD PACK-VAL.  
Run Code Online (Sandbox Code Playgroud)

LS 正在执行,结果显示在屏幕上。但是,我找不到任何地方或想出一种读取输出的方法,在这种情况下,将“unix”中的文件/文件夹列表再次转换为 COBOL。(我验证了 COBOL 正确启动了该命令,因为如果我通过 STRQSH CMD('LS>fromcobol.txt') 更改它,则会使用正确的输出创建文件 'fromcobol.txt',但我不知道如何将该输出检索到同一个 COBOL 程序中......我对 COBOL 非常无知,我今天开始学习,我花了很长时间才启动命令......)

非常感谢您的帮助...

cobol ibm-midrange qshell

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

标签 统计

ibm-midrange ×10

db2 ×4

db2-400 ×4

rpg ×2

rpgle ×2

sql ×2

.net ×1

cobol ×1

control-language ×1

cross-platform ×1

database ×1

ddl ×1

qshell ×1