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.

Другие вопросы по тегам