다음을 통해 공유


BLOB 및 OLE 개체

SQL Server Native Client OLE DB 공급자는 소비자가 SQL Serverntext, text, image, varchar(max), nvarchar(max), varbinary(max) 및 XML 데이터 형식을 BLOB(Binary Large Object)처럼 액세스할 수 있도록 지원하기 위해 ISequentialStream 인터페이스를 공개합니다. ISequentialStream에서 Read 메서드를 사용하면 소비자가 많은 양의 데이터를 관리하기 쉬운 청크로 가져올 수 있습니다.

이 기능을 보여 주는 예제를 보려면 CodePlex에서 대량 데이터 설정을 위한 OLE BD 예제를 참조하십시오. 자세한 내용은 SQL Server 데이터베이스 엔진 예제를 참조하십시오.

소비자가 데이터 수정을 위해 바인딩한 접근자에서 인터페이스 포인터를 제공하면 SQL Server Native Client OLE DB 공급자는 소비자가 구현한 IStorage 인터페이스를 사용할 수 있습니다.

큰 값 데이터 형식의 경우 SQL Server Native Client OLE DB 공급자는 IRowset 및 DDL 인터페이스의 형식 크기 가정을 확인합니다. 최대 크기가 무제한으로 설정된 varchar, nvarcharvarbinary 데이터 형식의 열은 열 데이터 형식을 반환하는 스키마 행 집합 및 인터페이스를 통해 ISLONG으로 나타납니다.

SQL Server Native Client OLE DB 공급자는 varchar(max), varbinary(max)nvarchar(max) 형식을 각각 DBTYPE_STR, DBTYPE_BYTES 및 DBTYPE_WSTR로 공개합니다.

응용 프로그램에서 이러한 형식을 사용하기 위해 처리하는 방법은 다음과 같습니다.

  • DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR 형식으로 바인딩합니다. 버퍼 크기가 충분하지 않으면 이전 릴리스에서 이러한 형식을 처리할 때와 마찬가지로 잘림이 발생합니다(새로운 버전에서는 더 큰 값을 사용할 수 있음).

  • 형식으로 바인딩하고 DBTYPE_BYREF도 지정합니다.

  • DBTYPE_IUNKNOWN으로 바인딩하고 스트리밍을 사용합니다.

DBTYPE_IUNKNOWN으로 바인딩하면 ISequentialStream 스트림 기능이 사용됩니다. SQL Server Native Client OLE DB 공급자는 저장 프로시저에서 클라이언트에 DBTYPE_IUNKNOWN으로 공개되는 큰 값 데이터 형식을 반환 값으로 반환하는 시나리오에 유용하도록 큰 값 데이터 형식에 대해 DBTYPE_IUNKNOWN 바인딩 출력 매개 변수를 지원합니다.

저장소 개체 제한 사항

  • SQL Server Native Client OLE DB 공급자는 열려 있는 저장소 개체를 하나만 지원할 수 있습니다. 저장소 개체를 두 개 이상 열려고 하면, 즉 두 개 이상의 ISequentialStream 인터페이스 포인터에 대한 참조를 얻으려고 하면 DBSTATUS_E_CANTCREATE가 반환됩니다.

  • SQL Server Native Client OLE DB 공급자에서 DBPROP_BLOCKINGSTORAGEOBJECTS 읽기 전용 속성의 기본값은 VARIANT_TRUE입니다. 이는 저장소 개체가 활성화되면 저장소 개체에 있는 메서드를 제외한 일부 메서드가 E_UNEXPECTED 오류와 함께 실패한다는 것을 의미합니다.

  • 소비자가 구현한 저장소 개체에서 제공하는 데이터의 길이는 이 저장소 개체를 참조하는 행 접근자가 생성될 때 SQL Server Native Client OLE DB 공급자에 알려져 있어야 합니다. 소비자는 접근자 생성에 사용되는 DBBINDING 구조에 길이 표시자를 바인딩해야 합니다.

  • 행에 큰 데이터 값이 두 개 이상 있고 DBPROP_ACCESSORDER가 DBPROPVAL_AO_RANDOM이 아닌 경우 소비자는 SQL Server Native Client OLE DB 공급자 커서 지원 행 집합을 사용하여 행 데이터를 검색하거나 다른 행 값을 검색하기 전에 모든 큰 데이터 값을 처리해야 합니다. DBPROP_ACCESSORDER가 DBPROPVAL_AO_RANDOM인 경우 SQL Server Native Client OLE DB 공급자는 임의의 순서로 액세스할 수 있도록 모든 XML 데이터 형식을 BLOB(Binary Large Object)으로 캐시합니다.