Prise en charge de FILESTREAM (OLE DB)
S'applique à : SQL Server
Important
SQL Server Native Client (souvent abrégé en SNAC) a été supprimé dans SQL Server 2022 (16.x) et SQL Server Management Studio 19 (SSMS). Le fournisseur OLE DB pour SQL Server Native Client (SQLNCLI ou SQLNCLI11) et le fournisseur Microsoft OLE DB hérité pour SQL Server (SQLOLEDB) ne sont pas recommandés dans les nouveaux développements. Utilisez à la place le nouveau Microsoft OLE DB Driver (MSOLEDBSQL) pour SQL Server.
À compter de SQL Server 2008 (10.0.x) et SQL Server Native Client 10.0, OLE DB prend en charge la fonctionnalité FILESTREAM améliorée. Pour plus d’informations sur cette fonctionnalité, consultez la prise en charge DE FILESTREAM. Pour obtenir des exemples, consultez Filestream et OLE DB.
Pour envoyer et recevoir des valeurs varbinary(max) supérieures à 2 Go, une application utilise DBTYPE_IUNKNOWN dans les liaisons de résultat et de paramètre. Pour les paramètres, le fournisseur doit appeler IUnknown::QueryInterface pour ISequentialStream et pour les résultats qui retournent ISequentialStream.
Pour OLE DB, la vérification en rapport avec les valeurs ISequentialStream sera levée. Lorsque wType est DBTYPE_IUNKNOWN dans la struct DBBINDING, la vérification de la longueur peut être désactivée en omettant DBPART_LENGTH de dwPart ou en définissant la longueur des données (au niveau du décalage obLength dans le tampon de données) sur ~0. Dans ce cas, le fournisseur ne vérifiera pas la longueur de la valeur et demandera et retournera toutes les données disponibles par le biais du flux de données. Cette modification sera appliquée à tous les types d'objets volumineux (LOB) et XML, mais uniquement en cas de connexion à des serveurs SQL Server 2005 (9.x) (ou ultérieurs). Cela offrira une plus grande souplesse aux développeurs, tout en maintenant la cohérence et la compatibilité descendante des applications existantes et des serveurs de niveau inférieur.
Cette modification affecte toutes les interfaces qui transfèrent des données, principalement IRowset::GetData, ICommand::Execute et IRowsetFastLoad::InsertRow.