Это своего рода «двойной» вопрос, на который может быть один ответ.
Я работаю с соединением Odbc с AS / 400 со следующей строкой соединения:
driver={iSeries Access ODBC Driver}; system={0}; uid={1}; pwd={2}; DefaultLibraries=*USRLIBL;
Я могу нормально подключиться к системе.
* USRLIBL содержит все необходимые библиотеки от пользователя (который имеет тип «только API» и имеет доступ ко всем пользовательским библиотекам).
Однако, когда я пытаюсь получить доступ к определенным библиотекам ERP, он говорит, что они не могут быть найдены, в то время как другие могут.
Итак, как чрезвычайно простое прохождение:
1. Open Connection - Query File 1 from Library A: OK! - Close Connection
2. Open Connection - Query File 2 from Library A: OK! - Close Connection
3. Open Connection - Query File 1 from Library B: Exception SQL0204 - in UserName type *FILE not found
Хорошо, поэтому я добавил в определенную библиотеку, в которой будут находиться файлы ERP, сделав строку подключения следующим образом, просто чтобы протестировать программу:
driver={iSeries Access ODBC Driver}; system={0}; uid={1}; pwd={2}; DefaultLibraries=*USRLIBL, LibraryB;
Но потом у меня начинает появляться другая проблема (еще одно чрезвычайно простое прохождение)
1. Open Connection - Query File 1 from Library A: OK! - Close Connection
2. Open Connection - Query File 2 from Library A: OK! - Close Connection
3. Open Connection - Query File 1 from Library B: OK! - Close Connection
4. Open Connection - Query File 1 from Library A again: Exception SQL0202 - in LibraryB type *FILE not found.
Итак, мои вопросы:
Почему строка подключения odbc DefaultLibraries = * USRLIBL не возвращает правильные библиотеки? (Примечание: я также проверил это, используя iDB2Connection, который на самом деле работает нормально ... однако, iDB2Connection не может быть развернут, поскольку он буквально приводит к сбою сервера)
Почему во втором пошаговом руководстве возникает исключение, просто кажется, что он пропускает * USRLIBL после прочтения из LibraryB хотя бы один раз.
Есть мысли?
Начало редактирования:
На самом деле есть два пользователя, DEV и PROD
* USRLIBL получает все необходимые библиотеки из самой среды, поэтому, если при открытии соединения он обнаруживает среду локального хоста или что-либо небезопасное (плюс несколько других предупреждений), он по умолчанию использует учетные данные для входа в систему DEV перед созданием соединения . Вот почему system, uid и pwd обозначены как параметры в соединении (а не только как заполнители, которые используют стековый поток I-dont-want-to-do-out-data)
Затем * USRLIBL извлекает необходимые библиотеки у пользователя API.
Проясним, что способ его настройки работает с использованием iDB2 Connector, но из-за ограничений нашей системы ERP (мы думаем), использование ее с сервером IIS 7 вызывает катастрофический сбой, поэтому мы работаем с разъем ODBC.
Конец редактирования: