다음을 통해 공유


BLOB 및 OLE 개체

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

OLE DB 드라이버 다운로드

OLE DB Driver for SQL Server는 SQL Server ntext, text1, image, varchar(max), nvarchar(max), varbinary(max) 및 xml 데이터 형식에 대한 소비자 액세스를 BLOB(Binary Large Objects)로 지원하기 위해 ISequentialStream 인터페이스를 노출합니다. ISequentialStream에서 Read 메서드를 사용하면 소비자가 많은 양의 데이터를 관리하기 쉬운 청크로 가져올 수 있습니다.

[1]: 레거시 텍스트 열에 UTF-8로 인코딩된 데이터를 삽입하는 데 ISequentialStream 인터페이스를 사용하는 것은 UTF-8을 지원하는 서버로만 제한됩니다. UTF-8을 지원하지 않는 서버를 대상으로 할 때 이 시나리오를 실행하려고 하면 드라이버에서 "선택한 열 형식에 대해 스트리밍이 지원되지 않습니다"라는 오류 메시지가 게시됩니다.

이 기능을 보여 주는 샘플을 보려면 큰 데이터 설정(OLE DB)을 참조하세요.

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

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

SQL Server용 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 스트림 기능이 사용됩니다. OLE DB Driver for SQL Server는 큰 값 데이터 형식에 대한 DBTYPE_IUNKNOWN으로 출력 매개 변수를 지원합니다. 이는 저장 프로시저가 이러한 데이터 형식을 반환 값으로 반환하고 클라이언트에 DBTYPE_IUNKNOWN 반환되는 시나리오를 지원하기 위한 것입니다.

스토리지 개체 제한 사항

  • OLE DB Driver for SQL Server는 열려 있는 단일 스토리지 개체만 지원할 수 있습니다. 둘 이상의 스토리지 개체를 열려고 시도합니다(둘 이상의 ISequentialStream 인터페이스 포인터에 대한 참조를 가져오기 위해)는 DBSTATUS_E_CANTCREATE 반환합니다.

  • SQL Server용 OLE DB 드라이버에서 DBPROP_BLOCKINGSTORAGEOBJECTS 읽기 전용 속성의 기본값은 VARIANT_TRUE입니다. 따라서 스토리지 개체가 활성화되면 스토리지 개체에 있는 메서드를 제외한 일부 메서드가 E_UNEXPECTED 오류와 함께 실패하게 됩니다.

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

  • 행에 큰 데이터 값이 하나 이상 있고 DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM 않은 경우 소비자는 OLE DB Driver for SQL Server 커서 지원 행 집합을 사용하여 행 데이터를 검색하거나 다른 행 값을 검색하기 전에 모든 큰 데이터 값을 처리해야 합니다. DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM 경우 OLE DB Driver for SQL Server는 모든 xml 데이터 형식을 BLOB(Binary Large Objects)로 캐시하여 순서에 따라 액세스할 수 있습니다.

섹션 내용

참고 항목

SQL Server 프로그래밍용 OLE DB 드라이버
큰 값 형식 사용