У меня есть требование выполнить базовый SQL (в данном случае вставку) для файла на AS400. Я пишу толстый клиент, приложение командной строки на С#, работающее в Windows 2008.
Если я укажу библиотеку и файл следующим образом:
insert into somelibrary.somefile (col1,col2) values val1,val2
тогда это работает. Проблема в том, что значение somelibrary
будет различаться между пользователями и средами. Я хотел бы использовать список библиотек *LIBL, чтобы он выбирал любые библиотеки, которые были выделены пользователю, в правильном порядке. Я хотел бы избежать использования файлов конфигурации, если это возможно.
Пользователь, с которым я тестирую, имеет в своем списке библиотек библиотеку, содержащую somefile
. Если я попытаюсь:
insert into somefile (col1,col2...) values val1,val2
Я получаю сообщение об ошибке:
ERROR [42S02] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0204 - somefile in username type *FILE not found.
Я пытался добавить *LIBL в SQL, а также в строку подключения, но не нашел файл. Я пробовал довольно много комбинаций, а также использовал косую черту для разделения библиотеки и файла.
В случае, если это уместно, строка подключения:
Driver={Client Access ODBC Driver (32-bit)}; System=" + server + "; UID=" + DBUser + "; PWD=" + DBPassword + ";";
Naming Convention=1
в строку подключения, чтобы переключиться в режим именования *SYS. - person dmc   schedule 22.01.2013