Microsoft OLE DB 원격 공급자 개요
Microsoft OLE DB 원격 공급자를 사용하면 클라이언트 컴퓨터의 로컬 사용자가 원격 컴퓨터에서 데이터 공급자를 호출할 수 있습니다. 원격 컴퓨터의 로컬 사용자인 경우와 마찬가지로 원격 머신에 대한 데이터 공급자 매개 변수를 지정합니다. 그런 다음 원격 공급자가 원격 컴퓨터에 액세스하는 데 사용하는 매개 변수를 지정합니다. 그런 다음 로컬 사용자인 것처럼 원격 컴퓨터에 액세스할 수 있습니다.
중요하다
Windows 8 및 Windows Server 2012부터 RDS 서버 구성 요소는 더 이상 Windows 운영 체제에 포함되지 않습니다(자세한 내용은 Windows 8 및 Windows Server 2012 호환성 쿡북 참조). RDS 클라이언트 구성 요소는 이후 버전의 Windows에서 제거됩니다. 새 개발 작업에서 이 기능을 사용하지 말고 현재 이 기능을 사용하는 애플리케이션을 수정할 계획입니다. RDS를 사용하는 애플리케이션은 WCF Data Service마이그레이션해야 합니다.
공급자 키워드
OLE DB 원격 공급자를 호출하려면 연결 문자열에 다음 키워드와 값을 지정합니다. (공급자 이름에 빈 공간을 적어 둡니다.)
"Provider=MS Remote"
추가 키워드
이 서비스 공급자가 호출되면 다음과 같은 추가 키워드가 관련됩니다.
키워드 | 묘사 |
---|---|
데이터 원본 | 원격 데이터 원본의 이름을 지정합니다. 처리를 위해 OLE DB 원격 공급자에 전달됩니다. 이 키워드는 RDS와 동일합니다. DataControl 개체의 Connect 속성입니다. |
동적 속성
이 서비스 공급자가 호출되면 Connection 개체의 Properties 컬렉션에 다음 동적 속성이 추가됩니다.
동적 속성 이름 | 묘사 |
---|---|
DFMode | DataFactory 모드를 나타냅니다. 서버에서 DataFactory 개체의 원하는 버전을 지정하는 문자열입니다. 연결을 열기 전에 이 속성을 설정하여 특정 버전의 DataFactory요청합니다. 요청된 버전을 사용할 수 없는 경우 이전 버전을 사용하려고 시도합니다. 이전 버전이 없으면 오류가 발생합니다.
DFMode 사용 가능한 버전보다 작으면 오류가 발생합니다. 이 속성은 연결이 만들어진 후 읽기 전용입니다. 다음 유효한 문자열 값 중 하나일 수 있습니다. - "25"-버전 2.5(기본값) - "21"-버전 2.1 - "20"-버전 2.0 - "15"-버전 1.5 |
명령 속성 | MS 원격 공급자가 서버에 보낸 명령(행 집합) 속성의 문자열에 추가될 값을 나타냅니다. 이 문자열의 기본값은 vt_empty. |
현재 DFMode | 서버에 있는 DataFactory 실제 버전 번호를 나타냅니다. 이 속성을 확인하여 DFMode 속성에서 요청된 버전이 적용되었는지 확인합니다. 다음과 같은 유효한 Long 정수 값 중 하나일 수 있습니다. - 25 버전 2.5(기본값) - 21 버전 2.1 - 20 버전 2.0 - 15 버전 1.5 MSRemote 공급자를 사용할 때 연결 문자열에 "DFMode=20;"을 추가하면 데이터를 업데이트할 때 서버의 성능이 향상될 수 있습니다. 이 설정을 사용하면 서버의 RDSServer.DataFactory 개체는 리소스 집약적 모드를 덜 사용합니다. 그러나 이 구성에서는 다음 기능을 사용할 수 없습니다. - 매개 변수가 있는 쿼리 사용 - Execute 메서드를 호출하기 전에 매개 변수 또는 열 정보를 가져옵니다. - 의 트랜잭션 업데이트을 True로 설정합니다. - 행 상태 가져오기 - Resync 메서드를 호출합니다. - Update Resync 속성을 통해 새로 고침(명시적 또는 자동으로) - 명령 또는 Recordset 속성 설정 - adCmdTableDirect사용합니다. |
처리기 | RDSServer.DataFactory기능을 확장하는 서버 쪽 사용자 지정 프로그램(또는 처리기)의 이름과 처리기에서 사용하는 매개 변수를 모두 쉼표(",")로 구분하여 나타냅니다. 문자열 값입니다. |
인터넷 시간 제한 | 서버에서 요청을 이동할 때까지 대기할 최대 시간(밀리초)을 나타냅니다. 기본값은 5분입니다. |
원격 공급자 | 원격 서버에서 사용할 데이터 공급자의 이름을 나타냅니다. |
원격 서버 | 이 연결에서 사용할 서버 이름 및 통신 프로토콜을 나타냅니다. 이 속성은 RDS와 동일합니다. DataContro 개체 Server 속성입니다. |
Transact 업데이트 | True설정하면 이 값은 UpdateBatch 서버에서 수행될 때 트랜잭션 내에서 수행됨을 나타냅니다. 이 부울 동적 속성의 기본값은 False입니다. |
연결 문자열에서 해당 이름을 키워드로 지정하여 쓰기 가능한 동적 속성을 설정할 수도 있습니다. 예를 들어 다음을 지정하여 인터넷 시간 제한 동적 속성을 5초로 설정합니다.
Dim cn as New ADODB.Connection
cn.Open "Provider=MS Remote;Internet Timeout=5000"
속성 속성의 인덱스로 이름을 지정하여 동적 속성을 설정하거나 검색할 수도 있습니다. 다음 예제는 Internet Timeout 동적 속성의 현재 값을 가져와서 출력하는 방법과 새 값을 설정하는 방법을 보여줍니다.
Debug.Print cn.Properties("Internet Timeout")
cn.Properties("Internet Timeout") = 5000
발언
ADO 2.0에서 OLE DB 원격 공급자는 Recordset 객체의 ActiveConnection 매개변수에서만 Open 메서드를 지정할 수 있었습니다. ADO 2.1부터 공급자는 Connection 개체의 ConnectionString 매개 변수에서 Open 메서드를 통해서도 지정할 수 있습니다.
RDS에 해당하는 값입니다. DataControl 개체 SQL 속성을 사용할 수 없습니다. Recordset 개체 Open 메서드 Source 인수가 대신 사용됩니다.
참고 "...; 원격 공급자=MS 원격;..."를 지정하면 4계층 시나리오를 만듭니다. 세 계층을 초과하는 시나리오는 테스트되지 않았으며 필요하지 않습니다.
본보기
이 예제에서는 YourServer서버에서 Pubs 데이터베이스의 Authors 테이블에 대한 쿼리를 수행합니다. 원격 데이터 원본 및 원격 서버의 이름은 Connection 개체의 Open 메서드에 제공되며 SQL 쿼리는 Recordset 개체의 Open 메서드에 지정됩니다. Recordset 개체가 반환되고, 편집되고, 데이터 원본을 업데이트하는 데 사용됩니다.
Dim rs as New ADODB.Recordset
Dim cn as New ADODB.Connection
cn.Open "Provider=MS Remote;Data Source=pubs;" & _
"Remote Server=https://YourServer"
rs.Open "SELECT * FROM authors", cn
... 'Edit the recordset
rs.UpdateBatch 'Equivalent of RDS SubmitChanges
...