Crystal сообщает, что не подключается к представлениям из AS/400 IFS
У меня здесь странный случай. Я создал вид в AS/400. Мне нужно иметь представление, а не логическое объединение, потому что мне нужно сделать UNION ALL. Представление создано, и я пошел в IFS и предоставил разрешения ВСЕ. Но когда я открываю Crystal Reports, устанавливаю соединение с iSeries и захожу в эту библиотеку View, он не отображается, поэтому я не могу использовать.
Есть ли что-нибудь еще, что мне нужно сделать?
Я просто попробовал что-то еще. это мнение:
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 есть также КОМАНДА, которую можно использовать для получения ваших данных, там вы можете сделать тот же запрос, но хотя я хочу, чтобы он был на AS / 400 для рассмотрения времени, требуется объединение, в противном случае мне нужно выполнить запросы через CL all. день. Я взял приведенный выше код из пункта SELECT и получил эту ошибку:
не удалось получить данные из базы данных. Подробности: HY000 Драйвер ODBC IBM ISeries ACCESS (DB2 UDB) sql 5016 - Недопустимое имя объекта ICLOCMLM. Код поставщика 5016.
Не уверен, что это значит.
3 ответа
Используйте оператор GRANT для управления привилегиями SQL.
Если представление выполняется поверх обычных файлов, вам также может понадобиться использовать команды GRTOBJAUT, EDTOBJAUT и RVKOBJAUT, чтобы изменить авторизацию для этих объектов.
"Он не отображается в библиотеке, когда я вижу таблицы и представления в кристалле".
Вы уверены, что представление действительно находится в библиотеке, как вы думаете?
Возможно, произошло то, что он был создан в другой библиотеке. Попробуйте проверить в библиотеке QGPL, или, если у вас есть библиотека, которая соответствует имени вашего профиля пользователя, проверьте там.
Если вопрос "Почему я получаю квалифицированное имя объекта ICLOCMLM, недопустим". Ответ, вероятно, заключается в том, что вы используете *SQL naming, а оператор, который вы используете, использует *SYSTEM naming. Попробуйте изменить FROM ASTDTA/ICLOCMLM
в FROM ASTDTA.ICLOCMLM
и посмотрите, исчезнет ли ошибка 5016.