Доступ к базе данных iSeries с помощью Python3. Файл не найден

#python #python-3.x #db2 #ibm-midrange

#python #python-3.x #db2 #ibm-средний уровень

Вопрос:

Я запускаю python 3 на iseries и хочу подключиться к локальной базе данных. Команда

 import ibm_db
conn = ibm_db.connect('XXXX','YYYYY','ZZZZ')
 

успешно, но когда я запускаю

 sql = "SELECT * FROM V40DTALIB.SCHOOL"
 

Я получаю сообщение об ошибке

 SCHOOL in V40DTALIB type *FILE not found. SQLSTATE=42704 SQLCODE=-204
 

Файл есть, и учетные данные, которые я использую, авторизованы. Я думаю, это потому, что библиотека находится на IASP. Обычно это монтируется описанием задания профиля пользователя, но этого, очевидно, не происходит. Если я заменю файл на QGPL (в sysbase) Я не получаю эту ошибку.

Я бы хотел запустить SETASPGRP ASPGRPXXX.

Я пробовал

 ibm_db.exec_immediate(conn, "call qcmdexc('SETASPGRP ASPGRP(IASPEXAM)')")   
 
 Exception: Trigger program or external routine detected an error. SQLSTATE=38501 SQLCODE=-443  
 

Я не знаю, где искать дополнительную информацию или журналы заданий и так далее. У кого-нибудь есть подсказка?

Ответ №1:

Внимательно посмотрите на эту строку…

 conn = ibm_db.connect('XXXX','YYYYY','ZZZZ')
 

Я считаю 'XXXX' , что это имя базы данных. Если у вас есть IASP, у вас, вероятно, есть как минимум две базы данных. Убедитесь, что у вас есть правильный для IASP.

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

1. Это сделало свое дело. Спасибо. Приятно видеть потоковую передачу данных.

2. @jimwatterson не забудьте отметить ответ как принятый.