Microsoft Cursor Service for OLE DB 개요
Microsoft Cursor Service for OLE DB는 데이터 공급자의 커서 지원 기능을 보완합니다. 따라서 사용자는 모든 데이터 공급자의 비교적 균일한 기능을 인식합니다.
커서 서비스는 동적 속성을 사용할 수 있게 하고 특정 메서드의 동작을 향상시킵니다. 예를 들어 Optimize 동적 속성을 사용하면 임시 인덱스를 만들어 Find 메서드와 같은 특정 작업을 용이하게 할 수 있습니다.
커서 서비스를 사용하면 모든 경우에 일괄 업데이트를 지원할 수 있습니다. 또한 데이터 공급자가 정적 커서와 같이 덜 지원되는 커서만 제공할 수 있는 경우 동적 커서와 같은 더 유능한 커서 형식을 시뮬레이트합니다.
키워드
이 서비스 구성 요소를 호출하려면 Recordset 개체의 CursorLocation 속성을 adUseClient로 설정하거나 Connection 개체의 설정을 적용합니다.
connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient
동적 속성
OLE DB용 커서 서비스를 호출하면 다음 동적 속성이 Recordset 개체의 Properties 컬렉션에 추가됩니다. Connection 및 Recordset 개체 동적 속성의 전체 목록은 ADO 동적 속성 인덱스나열됩니다. 연결된 OLE DB 속성 이름(해당하는 경우)은 ADO 속성 이름 뒤의 괄호에 포함됩니다.
커서 서비스가 호출된 후에는 일부 동적 속성에 대한 변경 내용이 기본 데이터 원본에 표시되지 않습니다. 예를 들어, Recordset에 대해 명령 제한 시간 속성을 설정하더라도 설정이 기본 데이터 공급자에게는 표시되지 않습니다.
Recordset1.CursorLocation = adUseClient 'invokes cursor service
Recordset1.Open "authors", _
"Provider=SQLOLEDB;Data Source=DBServer;User Id=MyUserID;" & _
"Password=<password>;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).
애플리케이션에 커서 서비스가 필요하지만 기본 공급자에서 동적 속성을 설정해야 하는 경우 커서 서비스를 호출하기 전에 속성을 설정합니다. 명령 개체 속성 설정은 커서 위치에 관계없이 항상 기본 데이터 공급자에 전달됩니다. 따라서 언제든지 명령 개체를 사용하여 속성을 설정할 수도 있습니다.
메모
기본 데이터 공급자가 지원하는 경우에도 동적 속성 DBPROP_SERVERDATAONINSERT 커서 서비스에서 지원되지 않습니다.
속성 이름 | 묘사 |
---|---|
자동 다시 계산(DBPROP_ADC_AUTORECALC) | Data Shaping Service를 사용하여 만든 레코드 집합의 경우 이 값은 계산 열과 집계 열이 계산되는 빈도를 나타냅니다. 기본값(value=1)은 데이터 셰이핑 서비스에서 값이 변경된 것으로 판단될 때마다 다시 계산하는 것입니다. 값이 0이면 계층이 처음 빌드된 경우에만 계산 열 또는 집계 열이 계산됩니다. |
일괄 처리 크기(DBPROP_ADC_BATCHSIZE) | 데이터 저장소로 전송되기 전에 일괄 처리할 수 있는 업데이트 문의 수를 나타냅니다. 일괄 처리에서 명령문이 많을수록 데이터 저장소로의 요청 왕복이 줄어듭니다. |
자식 행 캐시(DBPROP_ADC_CACHECHILDROWS) | 데이터 셰이핑 서비스를 사용하여 만든 레코드 집합의 경우 이 값은 자식 레코드 집합이 나중에 사용할 수 있는 캐시에 저장되는지 여부를 나타냅니다. |
커서 엔진 버전(DBPROP_ADC_CEVER) | 사용 중인 커서 서비스의 버전을 나타냅니다. |
변경 상태 유지(DBPROP_ADC_MAINTAINCHANGESTATUS) | 여러 테이블 조인에서 하나 이상의 행을 다시 동기화하는 데 사용되는 명령의 텍스트를 나타냅니다. |
최적화 | 인덱스 생성 여부를 나타냅니다. true 설정하면 특정 작업의 실행을 개선하기 위해 인덱스를 임시로 만들 권한을 부여합니다. |
이름 변경 | 레코드 집합이름을 나타냅니다. 현재 또는 후속 데이터 셰이핑 명령 내에서 참조할 수 있습니다. |
동기화 재설정 명령 | Unique Table 속성이 적용될 때 Resync 메서드에서 사용하는 사용자 지정 명령 문자열을 나타냅니다. |
고유한 카탈로그 | Unique Table 속성에서 참조되는 테이블을 포함하는 데이터베이스의 이름을 나타냅니다. |
고유 스키마 | Unique Table 속성에서 참조되는 테이블 소유자의 이름을 나타냅니다. |
고유한 테이블 | 삽입, 업데이트 또는 삭제로 수정할 수 있는 여러 테이블에서 만든 Recordset 한 테이블의 이름을 나타냅니다. |
업데이트 조건(DBPROP_ADC_UPDATECRITERIA) | 업데이트 중에 발생하는 충돌을 처리하는 데 사용되는 WHERE 절의 필드를 나타냅니다. |
업데이트 다시 동기화(DBPROP_ADC_UPDATERESYNC) | Unique Table 속성이 적용되는 경우 Resync 메서드가 UpdateBatch 메서드(및 해당 동작) 후에 암시적으로 호출되는지 여부를 나타냅니다. |
Properties 컬렉션의 인덱스로 이름을 지정하여 동적 속성을 설정하거나 검색할 수도 있습니다. 예를 들어 Optimize 동적 속성의 현재 값을 가져와서 인쇄한 다음 다음과 같이 새 값을 설정합니다.
Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True
기본 제공 속성 동작
OLE DB용 커서 서비스는 특정 기본 제공 속성의 동작에도 영향을 줍니다.
속성 이름 | 묘사 |
---|---|
CursorType | 레코드셋에 대해 사용할 수 있는 커서 유형을 보충합니다. |
LockType | Recordset사용할 수 있는 잠금 유형을 확장합니다. 일괄 업데이트를 사용하도록 설정합니다. |
정렬 | Recordset에 대해 하나 이상의 필드 이름을 지정하고, 각 필드가 오름차순 또는 내림차순으로 정렬되는지를 설정합니다. |
메서드 동작
OLE DB용 커서 서비스는 Field 개체의 Append 메서드의 동작을 사용하거나 영향을 줍니다. 또한 Recordset 개체의 Open, Resync, UpdateBatch및 Save 메서드의 동작에 영향을 줍니다.