【问题标题】:Crystal reports not connectiing to Views from AS/400 IFSCrystal 报表未连接到来自 AS/400 IFS 的视图
【发布时间】:2013-07-19 19:00:17
【问题描述】:

我这里有一个奇怪的案例。我在 AS/400 中创建了一个视图。我需要查看不符合逻辑的视图,因为我需要执行 UNION ALL。视图已创建,我去了 IFS 并授予了所有权限。但是当我打开 Crystal Reports,与 iSeries 建立连接,并转到视图的那个库时,它没有显示,所以我无法使用。

我还有什么需要做的吗?

我刚刚尝试了其他方法。这是视图:

CREATE VIEW MKLIB/BEMPLOCM AS
   ((SELECT  LMRIDC, LMCOM#, LMWHS#, LMLOC1, LMLOC2, LMLOC3, LMLTPC, LMLCT1
     FROM
        ((SELECT  LMRIDC, LMCOM#, LMWHS#, LMLOC1, LMLOC2, LMLOC3, LMLTPC, LMLCT1
          FROM ASTDTA/ICLOCMLM WHERE LMLTPC IN ('PCK', 'PAL', 'RAK')) t1
     EXCEPTION JOIN
        (SELECT * FROM ASTDTA/ICBALMIE) t2
           ON LMLOC1=IELOC1 AND LMLOC2=IELOC2 AND LMLOC3=IELOC3 )
     EXCEPTION JOIN
        (SELECT * FROM ASTDTA/ICBLDTIR) t3
           ON LMLOC1=IRLOC1 AND LMLOC2=IRLOC2 AND LMLOC3=IRLOC3 ))

现在在 Crystal 报表中还有 COMMAND 用于获取您的数据,在那里您可以进行相同的查询,但是虽然出于时间考虑我希望它在 AS/400 上,但需要联合,否则我必须运行查询全天通过 CL。所以我从 SELECT 点拿了上面的代码,得到了这个错误:

未能从数据库中检索数据。详细信息:HY000 IBM ISeries 访问 ODBC 驱动程序 (DB2 UDB) sql 5016 - 限定对象名称 ICLOCMLM 无效。供应商代码 5016。

不知道这是什么意思。

【问题讨论】:

  • IFSVIEW 的权限有什么关系?
  • 我认为这可能是该视图未出现在 Crystal 中使用的对象列表中的原因。在 IFS 之前它没有 ALL 权限所以我改变了它。
  • 一般情况下,人们写IFS时,他们指的是一个流文件,而不是QSYS.LIB文件系统中的一个对象。这就是为什么詹姆斯要问 IFS 与任何事情有什么关系。您不能在流文件系统中创建视图。
  • 好的我写了一个视图,我想在水晶报表中使用这个视图,但是当我在水晶中看到表格和视图时,它没有在库中列出它。我的问题是,它没有被看到的原因是什么?
  • VIew 是通过 STRSQL 写在 400 上的。在 400 上,我可以对此进行查询。我必须做什么才能让水晶报表看到这个视图?

标签: view ibm-midrange crystal-reports-xi ibm-ifs


【解决方案1】:

使用GRANT 语句来控制SQL 权限。

如果视图超过常规文件,您可能还必须使用命令 GRTOBJAUTEDTOBJAUTRVKOBJAUT 来修改对这些对象的授权。

【讨论】:

  • 我这样做了:更需要 GRTOBJAUT OBJ(ASTCCDTA/BEMPLOCM) OBJTYPE(*ALL) USER(*PUBLIC) AUT(*ALL)?它仍然没有出现。
  • 在这里,您将授权给图书馆 ASTCCDTA 中的 BEMPLOCM。在问题中,您在 MKLIB 库中创建了视图 BEMPLOCM。
  • 我的库或那个库的问题相同。授予我这样做的方式是否足够?
  • 您在 Crystal Reports 中使用的是什么库?
  • 当您打开 ODBC 连接到 I 时,只显示 2 个库。我的观点是 def。在这 2 中的 1 中创建。我就此与 IBM 进行了交谈,他们认为我必须为此联系 SAP 支持,我正在处理中。
【解决方案2】:

“当我在水晶中看到表格和视图时,它没有在库中列出它。”

您确定视图实际上在您认为的库中吗?

可能发生的情况是它可能是在另一个库中创建的。尝试检查 QGPL 库,或者如果您有一个与您的用户配置文件名称匹配的库,请检查那里。

【讨论】:

  • 我认为 lib 中的定义。它是 SAP (CR) 方面的东西。
【解决方案3】:

如果问题是“为什么我会得到合格的对象名称 ICLOCMLM 无效。”答案可能是您正在使用 *SQL 命名,而您正在运行的语句正在使用 *SYSTEM 命名。尝试将 FROM ASTDTA/ICLOCMLM 更改为 FROM ASTDTA.ICLOCMLM 并查看 5016 错误是否消失。

【讨论】:

  • 我知道现在是什么问题。 Crystal 仅识别 DDS 创建的表或逻辑。因为当我通过 Query 创建临时文件时,它看不到它,但后来我将它复制到 DDS 创建的克隆中,它确实看到了。
  • 它对我有用。 RUNQRY QRY(*NONE) QRYFILE((MASTERFILE)) OUTTYPE(*OUTFILE) RCDSLT(*YES) OUTFILE(BUCK/BUCKMST *FIRST *NEWFILE) 然后我启动 Crystal, Report Wizard, My Connections, MYIBMI, MYDBNAME, BUCK, Tables .我可以在表格列表中看到 BUCKMST。我可以用其中的列制作报告。 V7.1,水晶 14.0.2.364。
  • 您的“临时文件”在 QTEMP 中吗?因为系统上没有一个名为 QTEMP 的库;每项工作都有一个单独的。您在 Crystal 中看到的 QTEMP 与您在交互式作业中看到的 QTEMP 不同。
  • 不,不是 qtemp。问题是,整个系统中只有 2 个库显示在水晶列表中。虽然我们有数十个库。所以我很自然地在 2 之一中创建任何东西。
  • 只有 2 个显示... 可能是您的权限,或者更可能是 ODBC 驱动程序设置中的库列表。您一直在谈论视图,但 RUNSQL 创建的文件是表(物理文件)。您能否编辑您的问题(不要删除,而是添加)以准确描述您正在采取的步骤?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
相关资源
最近更新 更多