Microsoft OLE DB 원격 공급자 개요
Microsoft OLE DB 원격 공급자를 사용하면 클라이언트 머신의 로컬 사용자가 원격 머신에서 데이터 공급자를 호출할 수 있습니다. 원격 머신의 로컬 사용자인 경우와 마찬가지로 원격 머신에 대한 데이터 공급자 매개 변수를 지정합니다. 그런 다음, 원격 공급자가 원격 머신에 액세스하는 데 사용하는 매개 변수를 지정합니다. 그런 다음, 로컬 사용자인 것처럼 원격 머신에 액세스할 수 있습니다.
Important
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 메서드를 호출하기 전에 매개 변수 또는 열 정보 가져오기. - Transact 업데이트를 True로 설정. - 행 상태 가져오기. - Resync 메서드 호출. - Update Resync 속성을 통해 (명시적으로 또는 자동으로) 새로 고침. - Command 또는 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"
해당 이름을 Properties 속성에 대한 인덱스로 지정하여 동적 속성을 설정하거나 검색할 수도 있습니다. 다음 예제에서는 인터넷 시간 제한 동적 속성의 현재 값을 가져와서 인쇄한 다음, 새 값을 설정하는 방법을 보여 줍니다.
Debug.Print cn.Properties("Internet Timeout")
cn.Properties("Internet Timeout") = 5000
설명
ADO 2.0에서 OLE DB 원격 공급자는 Recordset 개체 Open 메서드의 ActiveConnection 매개 변수에만 지정할 수 있습니다. ADO 2.1부터는 Connection 개체 Open 메서드의 ConnectionString 매개 변수에도 공급자를 지정할 수 있습니다.
RDS.DataControl 개체의 SQL 속성에 해당하는 속성은 사용할 수 없습니다. Recordset 개체 Open 메서드 Source 인수가 대신 사용됩니다.
참고 “...;원격 공급자=MS 원격;...”을 지정하면 4계층 시나리오가 만들어집니다. 3계층을 초과하는 시나리오는 테스트되지 않았으며 필요하지 않아야 합니다.
예시
이 예제에서는 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
...