Отображение записей таблицы из AS400 в Visual Basic

#vb.net #record #ibm-midrange #display

#vb.net #запись #ibm-средний уровень #отображение

Вопрос:

Я пытаюсь отобразить записи из таблицы PYLEAVE, но когда я использую этот код, он показывает ошибку SQL0204, кто-нибудь может мне помочь?

 Call takeconnectionas400()
    conn.Close()
    conn.Open()
    adapter = New OleDbDataAdapter("select * from PRIMA.PYLEAVE", conn)
    ds = New DataSet
    adapter.Fill(ds, "PRIMA.PYLEAVE")
    DGVAS400.DataSource = ds.Tables("PRIMA.PYLEAVE")
    DGVAS400.ReadOnly = True
  

Комментарии:

1. Было ли в сообщении об ошибке что-то еще, кроме этого? Поиск предполагает, что имя таблицы неверно в запросе. (Также может быть, что вы подключаетесь к неправильной базе данных, поэтому она не найдет там таблицу.) И в коде, похоже, отсутствует строка для удаления соединения.

2. SQL0204: ФАЙЛ PYLEAVE типа PRIMA * ФАЙЛ не найден.

3. Это новый код, имя базы данных — PRIMA, имя таблицы — PYLEAVE

4. Проверьте строку подключения. Убедитесь, что вы подключаетесь к правильному серверу. Также проверьте идентификатор пользователя, который вы используете. Хотя обычно вы получаете соответствующую ошибку безопасности, если вы не авторизованы, я иногда видел ошибку 0204, когда файл есть, но вам не разрешено его видеть.

5. попробуйте ваш запрос на strsql в вашем iseries и скажите мне, сработает ли запрос

Ответ №1:

В DB2 для IBM i синтаксис таблицы отличается от, DBNAME.TABLENAME он SCHEMA.TABLENAME используется в старой терминологии AS / 400, то есть LIBRARY.FILE попросите вашего администратора IBM i сообщить вам, в какой схеме (библиотеке) находится таблица, и соответствующим образом измените инструкцию SELECT.

Я не знаю VB, но в JDBC вы указываете имя базы данных в строке подключения, а не в инструкции SELECT.

Комментарии:

1. Я новичок в i Series, но должен указывать схему (библиотеку) в запросах либо с помощью System i Navigator, либо из VB. Хотя может быть параметр строки подключения или что-то вроде USE команды MySQL, о которой я не знаю.