Compartir a través de


Compatibilidad con FILESTREAM (OLE DB)

Se aplica a: SQL Server

Importante

SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). Para nuevos trabajos de desarrollo, no se recomiendan ni el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft para SQL Server (SQLOLEDB) heredado. Cambie al nuevo Controlador Microsoft OLE DB para SQL Server de ahora en adelante.

A partir de SQL Server 2008 (10.0.x) y SQL Server Native Client 10.0, OLE DB admite la característica FILESTREAM mejorada. Para obtener más información sobre esta característica, consulte Compatibilidad con FILESTREAM. Para ver ejemplos, consulte FileStream y OLE DB.

Para enviar y recibir valores varbinary(max) mayores de 2 GB, una aplicación usa DBTYPE_IUNKNOWN en enlaces de resultados y parámetros. En el caso de los parámetros, el proveedor debe llamar a IUnknown::QueryInterface para ISequentialStream y para los resultados que devuelven ISequentialStream.

Para OLE DB, la comprobación relacionada con los valores ISequentialStream será menos estricta. Cuando wType es DBTYPE_IUNKNOWN en el struct DBBINDING, la comprobación de longitud se puede deshabilitar omitiendo DBPART_LENGTH en dwPart o estableciendo la longitud de los datos (en el desplazamiento obLength del búfer de datos) en ~0. En este caso, el proveedor no comprobará la longitud del valor y solicitará y devolverá todos los datos disponibles a través del flujo. Este cambio se aplicará a todos los tipos de objeto grandes (LOB) y XML, pero solo cuando se realice la conexión a los servidores SQL Server 2005 (9.x) (o posteriores). Esto proporcionará mayor flexibilidad para los programadores, a la vez que se mantendrá la coherencia y la compatibilidad con versiones anteriores para las aplicaciones existentes y los servidores de nivel inferior.

Este cambio afecta a todas las interfaces que transfieren datos, principalmente IRowset::GetData, ICommand::Execute y IRowsetFastLoad::InsertRow.

Consulte también

Programación de SQL Server Native Client