iSeries의 DB에있는 일부 테이블에 액세스하기 위해 SQL 2008 Express에서 AS400을 링크 된 서버로 추가하려고합니다. 나는 많은 다른 문자열을 가진 모든 OLE 공급자를 시도해 왔으며 연결을 구축하는 데 운이 없었습니다. 이 버전의 SQL에서도 가능합니까? 나는뿐만 아니라 AS/400 OLE DB 공급자에 문제가 했어SQL 2008 Express가 설치된 AS400/DB2에 액세스
0
A
답변
1
감사합니다. 그래서 나는 부정한 대신 ODBC를 사용했다. AS/400에 연결할 시스템 DSN을 작성하십시오. 다음과 같이 연결된 서버 생성 : 이전의 예에서
EXEC sp_addlinkedserver
@server = 'MyServer',
@srvproduct = '',
@provider = 'MSDASQL',
@datasrc = 'AS400'
을, 난 내 시스템 DSN에게 "AS400"의 이름을 주었다. SQL Express 내에서 서버는 "MyServer"라고합니다. 이 솔루션의 문제점은 다음과 같습니다. iSeries Access ODBC 제공자를 사용했으며 기본적으로 내 로컬 시스템에 암호를 저장하지 않습니다. 그래서 나는 그린 스크린 세션을 먼저 불러 와서 AS/400에 연결되었는지 확인해야했다. 연결된 서버 정의가 추가되고 활성 연결이, 또는 암호 문제가 ODBC 연결 함께 일하면
어쨌든, 당신은 다음과 같은 데이터를 얻을 수있는 쿼리를 실행 :
SELECT * FROM MyServer.MySystem.MyLibrary.MyFile
여기서 "MyServer"은 sp_addlinkedserver 호출의 @ server = 부분에 입력 한 이름입니다. "MySystem"은 AS/400 데이터베이스 이름입니다. 녹색 화면에 로그온하고 WRKRDBDIRE 명령을 사용하여이 값을 판별 할 수 있습니다. * LOCAL의 리모트 위치를 가진 항목이 데이터베이스 이름입니다. "MyLibrary"및 "MyFile"은 자명합니다.
쿨한 해결책처럼 느껴지지만 작동합니다.
0
동일한 문제가 있지만이 솔루션은 저에게 효과적입니다. 연결된 서버를 추가 한 후 어떤 식 으로든 라이브러리 & 테이블이 표시되지 않지만 연결되어 있습니다. 당신은 세부 here
을 확인할 수 있습니다select * from OpenQUery(<name_of_linked_server>, 'select * from <library>.<table>');
: 그냥이 쿼리를 시도