View Crystal报告未连接到AS/400 IFS中的视图

View Crystal报告未连接到AS/400 IFS中的视图,view,ibm-midrange,crystal-reports-xi,ibm-ifs,View,Ibm Midrange,Crystal Reports Xi,Ibm Ifs,我这里有个奇怪的病例。我在AS/400中创建了一个视图。我需要有视图而不是连接逻辑,因为我需要做一个UNION ALL。视图已创建,我转到IFS并授予了所有权限。但当我打开Crystal Reports,连接到iSeries,并转到视图库时,它并没有显示,所以我无法使用 还有什么我需要做的吗 我只是试了点别的。这是一种观点: CREATE VIEW MKLIB/BEMPLOCM AS ((SELECT LMRIDC, LMCOM#, LMWHS#, LMLOC1, LMLOC2, LML

我这里有个奇怪的病例。我在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 reports中,还有一个用于获取数据的命令,您可以在那里进行相同的查询,但尽管出于时间考虑,我希望在AS/400上进行查询,但需要使用union,否则我必须整天通过CL运行查询。因此,我从选择点获取上述代码,并得到以下错误:

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

不确定这意味着什么。

使用该语句控制SQL权限

如果视图位于常规文件之上,您可能还必须使用命令,并修改这些对象的授权。

当我在crystal中看到表和视图时,它不会在库中列出它

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


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

如果问题是“为什么我获取的限定对象名ICLOCMLM无效”。答案可能是您正在使用*SQL命名,而您正在运行的语句正在使用*系统命名。尝试将
从ASTDTA/ICLOCMLM
更改为
从ASTDTA.ICLOCMLM
并查看5016错误是否消失。

IFS与视图权限有何关系?我认为这可能是为什么此视图未出现在Crystal中使用的对象列表中的原因。在IFS之前,它没有所有的权限,所以我更改了它。通常,当人们编写IFS时,他们指的是流文件,而不是QSYS.LIB文件系统中的对象。这就是为什么詹姆斯问IFS和任何事情都有什么关系。您不能在流文件系统中创建视图。好的,我写了一个视图,我想在crystal reports中使用此视图,但当我在crystal中看到表和视图时,它不会在库中列出它。我的问题是,它没有被看到的原因是什么?视图是通过STRSQL写在400上的。在400上,我可以对此进行查询。我必须做些什么才能让crystal reports看到这个视图?我这样做了:更需要GRTOBJAUT OBJ(ASTCCDTA/BEMPLOCM)OBJTYPE(*ALL)USER(*PUBLIC)AUT(*ALL)?它仍然没有出现。在这里,您正在向库ASTCCDTA中的BEMPLOCM授予权限。在问题中,您在库MKLIB中创建了视图BEMPLOCM。它与我的库或该库的版本相同。grant这样做是否足够?您在Crystal Reports中使用的库是什么?当您打开ODBC连接到I时,仅显示2个LIB。我的视图是def。在这2个中的1个中创建。我就此与IBM进行了交谈,他们认为我必须为此联系SAP支持,我认为我正在lib中处理that.def。这是SAP(CR)方面的问题。我知道现在的问题是什么。Crystal仅识别DDS创建的表或逻辑。因为当我通过查询创建一个临时文件时,它并没有看到它,但后来我将它复制到DDS创建的克隆中,它确实看到了。这对我来说很有效。RUNQRY QRY(*NONE)QRYFILE((主文件))OUTTYPE(*OUTFILE)RCDSLT(*YES)OUTFILE(BUCK/BUCKMST*FIRST*NEWFILE)然后启动Crystal、报告向导、我的连接、MYIBMI、MYDBNAME、BUCK、Tables。我可以在表格列表中看到BUCKMST。我可以做一个包含列的报告。V7.1,Crystal 14.0.2.364。您的“临时文件”在QTEMP中吗?因为系统上没有一个叫做QTEMP的库;每个工作都有一个单独的。在Crystal中看到的QTEMP与在交互作业中看到的QTEMP不同。不,不是QTEMP。问题是,整个系统中只有两个库显示在crystal列表中。我们有几十个自由行。所以我很自然地在其中一个节目中创造了任何东西。只有两个节目。。。可能是您的权限,或者更可能是ODBC驱动程序设置中的库列表。您一直在谈论视图,但RUNSQL创建的文件是表(物理文件)。你能编辑你的问题(不要删除,而是添加)来准确描述你正在采取的步骤吗?