2011-11-17 2 views
4

이것은 일종의 '이중'질문입니다. 다음과 같이Odbc 연결 문자열 형식, 파일을 찾을 수 없음

내 연결 문자열와 더불어, AS/400 ODBC 연결 함께 일하고 있어요 :

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. 
다른 문제를 받기 시작 0

그럼 내 질문은 :

왜 odbc connectionstring DefaultLibraries = * USRLIBL은 올바른 라이브러리를 반환하지 않습니까? (참고 : 실제로 iDB2Connection을 사용하여이 기능을 테스트했는데 실제로 서버가 충돌하기 때문에 iDB2Connection을 배포 할 수 없습니다.)

두 번째 연습에서 예외가 발생하는 이유는 무엇입니까? '건너 뛰기'* USRLIBL은 LibraryB에서 한번 읽은 후에도 가능합니다.

의견이 있으십니까?

편집 시작 : 두 명의 사용자, 디바이스 및 PROD

실제로있다

을 * 연결을 열 때, 그것은 로컬 호스트를 감지하면, 그래서 USRLIBL은 환경 자체에서 필요한 모든 라이브러리를 가져옵니다 환경 또는 안전하지 않은 것 (몇 가지 다른 경고 포함)이 있으면 연결을 만들기 전에 DEV 로그 인 자격 증명 이 기본값으로 사용됩니다. 이것이 system, uid 및 pwd가 연결에서 매개 변수로 지정되는 이유입니다 (stackoverflow I-dont-give-out 데이터 자리 표시 자만이 아님)

* USRLIBL은 필요한 라이브러리를 API 사용자.

명백하게하기 위해 설정 방법은 iDB2 커넥터를 사용하지만 ERP 시스템의 한계로 인해 IIS 7 서버와 함께 사용하면 치명적인 오류가 발생하므로 작업 중입니다. ODBC 커넥터로.

최종 편집 :

답변