sql - AS400 和系统 I 导航器

标签 sql excel ibm-midrange iseries-navigator vba

我是 AS400 新手,我的工作是使用 AS400 和 Powerlink (XA) 访问和管理大型 ERP 数据。我找到了一种使用 System I Nagivator 表通过 Excel VBA 和 SQL 访问数据的方法。

我的问题是我无法在导航器中找到正确的架构>表来提供与 AS400 中我想要的数据相匹配的 Excel VBA。

问题:假设我想要查找某件商品的价格,并且想要在 Navigator 中查找价格表。 AS400 有没有办法获取与 Navigator 中相同表格匹配的价格表名称?

这是我的第一个问题,如果需要更多信息,请告诉我。

请帮忙,谢谢!

最佳答案

首先介绍一下术语,AS/400 是一个旧术语,以前称为 AS/400 的平台和操作系统的当前名称现在是 IBM i on Power Systems。 IBM i 是操作系统。 (直到 IBM 再次更改名称)

如果您知道表名称但不知道 IBM i 对象名称

在 IBM i 上,数据库内置于操作系统中,许多操作系统对象实际上是数据库对象。以下是一些 SQL 概念如何映射到 IBM i 术语。

SQL              IBM i
--------------   ------------------
Schema           Library
Table            Physical file
Index            Logical file
View             Logical file
Row              Record
Column           Field

不幸的是,在 IBM i 中,对象名称限制为 10 个字符。另一方面,SQL 名称最多可以有 128 个字符。您将找不到名为 CustomerMaster 的物理文件。 DB2 将该长名称映射到系统名称。您可以通过查询目录来找到系统名称,如下所示:

select system_schema_name, system_table_name
  from qsys2.systables
  where table_name = 'Navigator name'

TABLE_NAME将保存表的长SQL名称,SYSTEM_TABLE_NAME将保存IBM i对象名称。请注意,长模式名称也可以映射到系统名称。 SCHEMA_NAME 列保存模式的长 SQL 名称,而 SYSTEM_SCHEMA_NAME 保存 IBM i 库名称。架构名称长度超过 10 个字符的情况并不常见,因此两个架构名称列通常是相同的。

如果您知道程序名称并有权访问源代码

这对您来说可能是显而易见的,但我将其放在这里只是为了完整性。您可以在源代码中查找正在使用的文件,然后从屏幕字段回溯到文件。

如果您只有绿屏

如果您有适当的权限,您可以检索当前作业的打开文件。如果这对您不起作用,您将必须向系统管理员或有权限的人寻求帮助。但这只会为您提供候选文件,并且它们很可能是逻辑文件。为此,您必须有权查看您的作业,并且您必须知道系统请求键如何映射到键盘(这是特定于实现的,并且可能是自定义的,因此您必须检查与您公司或模拟器内部的人员确定)。

完成后,启动绿屏程序,显示您正在寻找的价格字段。然后按系统请求键。如果您配置为允许这样做,您将在屏幕底部看到一条输入行,并且光标将定位到该输入行。

按 Enter 键。

您现在应该位于“系统请求”菜单中。

选择选项 3,然后再次按 Enter 键。您应该位于当前作业的“显示作业”屏幕中。

如果这一切对您来说正确,那么选项 12 将向您显示您的作业当前锁定的文件。即,为您的作业打开的文件。价格字段应位于其中之一。

关于sql - AS400 和系统 I 导航器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43563578/

相关文章:

ibm-midrange - 现在要构造返回参数以使用 XMLService 接受 bool 值吗?

ibm-midrange - 为什么 PC 到 AS400、ASCII FTP 传输会在 AS400 端导致非常大的文件增长?

sql - sql查询以求和五列中的最少两列中的值

sqlbulkcopy,我想覆盖数据库中的当前行

sql-server - 在Excel中的VBA中捕获来自SQL Server的错误消息

Word 中的 Excel 应用程序未关闭

hibernate - 在 JBoss 7.1 上使用 JPA/Hibernate/JAVA 访问 AS/400 数据库

mysql - 获取看起来像包含多个混合词的字符串的记录

sql - Oracle SQL : Alternative to nested REPLACE() in Select statement?

excel - 我的 VBA 代码每次迭代都会变慢