SQL Server Native Client의 Blob 및 OLE 개체BLOBs and OLE Objects in SQL Server Native Client

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance 예Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics 예병렬 데이터 웨어하우스Parallel Data Warehouseyes병렬 데이터 웨어하우스Parallel Data Warehouse적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance 예Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics 예병렬 데이터 웨어하우스Parallel Data Warehouseyes병렬 데이터 웨어하우스Parallel Data Warehouse

SQL ServerSQL Server Native Client OLE DB 공급자는 SQL ServerSQL Server ntext, text, image, varchar (max), nvarchar (max), varbinary (max) 및 xml 데이터 형식에 대 한 소비자 액세스를 blob (binary large object)로 지원 하기 위해 ISequentialStream 인터페이스를 노출 합니다.The SQL ServerSQL Server Native Client OLE DB provider exposes the ISequentialStream interface to support consumer access to SQL ServerSQL Server ntext, text, image, varchar(max), nvarchar(max), varbinary(max), and xml data types as binary large objects (BLOBs). ISequentialStream 에서 Read 메서드를 사용하면 소비자가 많은 양의 데이터를 관리하기 쉬운 청크로 가져올 수 있습니다.The Read method on ISequentialStream lets the consumer retrieve much data in manageable chunks.

이 기능을 보여주는 샘플을 보려면 큰 데이터 설정(OLE DB)을 참조하세요.For a sample demonstrating this feature, see Set Large Data (OLE DB).

SQL ServerSQL Server소비자가 데이터 수정에 바인딩된 접근자에 인터페이스 포인터를 제공 하는 경우 Native Client OLE DB 공급자는 소비자가 구현한 IStorage 인터페이스를 사용할 수 있습니다.The SQL ServerSQL Server Native Client OLE DB provider can use a consumer-implemented IStorage interface when the consumer provides the interface pointer in an accessor bound for data modification.

큰 값 데이터 형식의 경우 SQL ServerSQL Server Native Client OLE DB 공급자는 IROWSET 및 DDL 인터페이스에서 형식 크기 가정을 확인 합니다.For large value data types, the SQL ServerSQL Server Native Client OLE DB provider checks for type size assumptions in IRowset and DDL interfaces. 최대 크기가 무제한으로 설정 된 varchar, nvarcharvarbinary 데이터 형식의 열은 스키마 행 집합 및 열 데이터 형식을 반환 하는 인터페이스를 통해 islong으로 표시 됩니다.Columns with varchar, nvarchar, and varbinary data types with max size set to unlimited will be represented as ISLONG through the schema rowsets and interfaces returning column data types.

SQL ServerSQL ServerNative Client OLE DB 공급자는 varchar ( max), varbinary (max)nvarchar (max) 형식을 각각 DBTYPE_STR, DBTYPE_BYTES 및 DBTYPE_WSTR으로 노출 합니다.The SQL ServerSQL Server Native Client OLE DB provider exposes the varchar(max), varbinary(max) and nvarchar(max) types as DBTYPE_STR, DBTYPE_BYTES and DBTYPE_WSTR respectively.

애플리케이션에서 이러한 형식을 사용하기 위해 처리하는 방법은 다음과 같습니다.To work with these types an application has the following options:

  • DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR 형식으로 바인딩합니다.Bind as the type (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR). 버퍼 크기가 충분하지 않으면 이전 릴리스에서 이러한 형식을 처리할 때와 마찬가지로 잘림이 발생합니다(새로운 버전에서는 더 큰 값을 사용할 수 있음).If the buffer is not big enough truncation will occur, exactly as for these types in previous releases (although larger values are now available).

  • 형식으로 바인딩하고 DBTYPE_BYREF도 지정합니다.Bind as the type and also specify DBTYPE_BYREF.

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

DBTYPE_IUNKNOWN으로 바인딩하면 ISequentialStream 스트림 기능이 사용됩니다.If bound to DBTYPE_IUNKNOWN, ISequentialStream stream functionality is used. SQL ServerSQL ServerNative client OLE DB 공급자는 출력 매개 변수를 대량 값 데이터 형식에 대 한 DBTYPE_IUNKNOWN로 바인딩하는 데 사용할 수 있습니다 .이 경우 저장 프로시저는 이러한 데이터 형식을 클라이언트에 DBTYPE_IUNKNOWN으로 노출 되는 반환 값으로 반환 합니다.The SQL ServerSQL Server Native Client OLE DB provider supports binding output parameters as DBTYPE_IUNKNOWN for large value data types to facilitate scenarios where a stored procedure returns these data types as return values which will be exposed as DBTYPE_IUNKNOWN to the client.

스토리지 개체 제한 사항Storage Object Limitations

  • SQL ServerSQL ServerNative Client OLE DB 공급자는 열려 있는 단일 저장소 개체만 지원할 수 있습니다.The SQL ServerSQL Server Native Client OLE DB provider can support only a single open storage object. 스토리지 개체를 하나를 초과해 열려고 하면, 즉 하나를 초과하는 ISequentialStream 인터페이스 포인터에 대한 참조를 얻으려고 하면 DBSTATUS_E_CANTCREATE가 반환됩니다.Attempts to open more than one storage object (to get a reference on more than one ISequentialStream interface pointer) return DBSTATUS_E_CANTCREATE.

  • SQL ServerSQL ServerNative Client OLE DB 공급자에서 DBPROP_BLOCKINGSTORAGEOBJECTS 읽기 전용 속성의 기본값은 VARIANT_TRUE입니다.In the SQL ServerSQL Server Native Client OLE DB provider, the default value of the DBPROP_BLOCKINGSTORAGEOBJECTS read-only property is VARIANT_TRUE. 이는 스토리지 개체가 활성화되면 스토리지 개체에 있는 메서드를 제외한 일부 메서드가 E_UNEXPECTED 오류와 함께 실패한다는 것을 의미합니다.This indicates that if a storage object is active, some methods (other than those on the storage objects) will fail with E_UNEXPECTED.

  • 소비자가 구현한 저장소 개체에서 제공 하는 데이터의 길이는 SQL ServerSQL Server 저장소 개체를 참조 하는 행 접근자가 만들어질 때 Native Client OLE DB 공급자에 게 알려 두어야 합니다.The length of data presented by a consumer-implemented storage object must be made known to the SQL ServerSQL Server Native Client OLE DB provider when the row accessor that references the storage object is created. 소비자는 접근자 생성에 사용되는 DBBINDING 구조에 길이 표시자를 바인딩해야 합니다.The consumer must bind a length indicator in the DBBINDING structure used for accessor creation.

  • 한 행에 두 개 이상의 대량 데이터 값이 포함 되어 DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM 되지 않은 경우 소비자는 SQL ServerSQL Server Native Client OLE DB 공급자 커서 지원 행 집합을 사용 하 여 행 데이터를 검색 하거나 다른 행 값을 검색 하기 전에 모든 대량 데이터 값을 처리 해야 합니다.If a row contains more than a single large data value and DBPROP_ACCESSORDER is not DBPROPVAL_AO_RANDOM, the consumer must either use a SQL ServerSQL Server Native Client OLE DB provider cursor-supported rowset to retrieve row data or process all large data values before retrieving other row values. DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM 되는 경우 SQL ServerSQL Server Native Client OLE DB 공급자는 모든 xml 데이터 형식을 blob (binary large object)로 캐시 하 여 순서에 관계 없이 액세스할 수 있습니다.If DBPROP_ACCESSORDER is DBPROPVAL_AO_RANDOM, the SQL ServerSQL Server Native Client OLE DB provider caches all the xml data types as binary large objects (BLOBs) so that it can be accessed in any order.

섹션 내용In This Section

참고 항목See Also

SQL Server Native Client (OLE DB) SQL Server Native Client (OLE DB)
큰 값 형식 사용Using Large Value Types