BLOB y objetos OLEBLOBs and OLE Objects

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

El SQL ServerSQL Server proveedor OLE DB de Native Client expone la ISequentialStream interfaz para admitir el acceso del consumidor a SQL ServerSQL Server ntext, texto, imagen, varchar (max), nvarchar (max), varbinary (max), y los tipos de datos xml como objetos binarios grandes (BLOB ).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). El método Read de ISequentialStream permite al consumidor recuperar muchos datos en fragmentos fáciles de administrar.The Read method on ISequentialStream lets the consumer retrieve much data in manageable chunks.

Para obtener un ejemplo que muestra esta característica, consulte del conjunto de datos grandes (OLE DB).For a sample demonstrating this feature, see Set Large Data (OLE DB).

El SQL ServerSQL Server proveedor OLE DB de Native Client puede utilizar un consumidor implementa IStorage interfaz cuando el consumidor proporciona el puntero de interfaz en un descriptor de acceso enlazado para la modificación de datos.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.

Para tipos de datos de valor grande, el SQL ServerSQL Server proveedor OLE DB de Native Client comprueba las suposiciones de tamaño de tipo IRowset e interfaces 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. Las columnas con varchar, nvarchar, y varbinary tipos de datos con el tamaño máximo está establecido en ilimitado se representarán como ISLONG a través de los conjuntos de filas de esquema e interfaces devolver tipos de datos de columna.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.

El SQL ServerSQL Server proveedor OLE DB de Native Client expone la varchar (max), varbinary (max) y nvarchar (max) tipos como DBTYPE_STR, DBTYPE_BYTES y DBTYPE_ WSTR, respectivamente.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.

Para trabajar con estos tipos de una aplicación tiene las siguientes opciones:To work with these types an application has the following options:

  • Enlazar como el tipo (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR).Bind as the type (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR). Si el búfer no es suficientemente grande, se producirá un truncamiento, exactamente igual que ocurría con estos tipos en las versiones anteriores (aunque ahora hay valores mayores).If the buffer is not big enough truncation will occur, exactly as for these types in previous releases (although larger values are now available).

  • Enlazar como el tipo y también especificar DBTYPE_BYREF.Bind as the type and also specify DBTYPE_BYREF.

  • Enlazar como DBTYPE_IUNKNOWN y usar la transmisión por secuencias.Bind as DBTYPE_IUNKNOWN and use streaming.

    Si se enlaza a DBTYPE_IUNKNOWN, se utiliza la funcionalidad de flujo de ISequentialStream.If bound to DBTYPE_IUNKNOWN, ISequentialStream stream functionality is used. El SQL ServerSQL Server proveedor OLE DB de Native Client admite parámetros de salida de enlace como DBTYPE_IUNKNOWN para tipos de datos de valor grande facilitar escenarios donde un procedimiento almacenado devuelve estos datos tipos como valores devueltos que serán expuestos como DBTYPE_IUNKNOWN en el cliente.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.

Limitaciones de los objetos de almacenamientoStorage Object Limitations

  • El SQL ServerSQL Server proveedor Native Client OLE DB puede admitir solo un objeto único almacenamiento abierto.The SQL ServerSQL Server Native Client OLE DB provider can support only a single open storage object. Cuando se intenta abrir más de un objeto de almacenamiento (para obtener una referencia en más de un puntero de interfaz ISequentialStream), se recibe 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.

  • En el SQL ServerSQL Server proveedor OLE DB de Native Client, el valor predeterminado de la propiedad DBPROP_BLOCKINGSTORAGEOBJECTS de solo lectura es 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. Esto indica que si un objeto de almacenamiento está activo, algunos métodos (salvo en los que están en los objetos de almacenamiento) sufrirán un error con 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.

  • La longitud de los datos presentados por un objeto de almacenamiento implementado por el consumidor debe dar a conocer a la SQL ServerSQL Server proveedor de OLE DB de Native Client cuando se crea el descriptor de acceso de la fila que hace referencia al objeto de almacenamiento.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. El consumidor debe enlazar un indicador de longitud de la estructura DBBINDING que se utiliza para la creación del descriptor de acceso.The consumer must bind a length indicator in the DBBINDING structure used for accessor creation.

  • Si una fila contiene más de un valor de datos grande y DBPROP_ACCESSORDER no es DBPROPVAL_AO_RANDOM, el consumidor debe utilizar un SQL ServerSQL Server conjunto de filas OLE DB de Native Client proveedor compatible con cursores para recuperar datos de fila o procesar datos de gran tamaño de todos los valores antes de recuperar otros valores de fila.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. Si DBPROP_ACCESSORDER es DBPROPVAL_AO_RANDOM, el SQL ServerSQL Server proveedor OLE DB de Native Client almacena en caché todos los tipos de datos xml como objetos binarios grandes (BLOB) para que se puede acceder en cualquier orden.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.

En esta secciónIn This Section

Vea tambiénSee Also

SQL Server Native Client (OLE DB) SQL Server Native Client (OLE DB)
Usar tipos de valor grandeUsing Large Value Types