FILESTREAM-ondersteuning (OLE DB)

Van toepassing op:SQL Server

Important

De SQL Server Native Client (vaak afgekort SNAC) is verwijderd uit SQL Server 2022 (16.x) en SQL Server Management Studio 19 (SSMS). Zowel de SQL Server Native Client OLE DB-provider (SQLNCLI of SQLNCLI11) als de verouderde Microsoft OLE DB-provider voor SQL Server (SQLOLEDB) worden niet aanbevolen voor nieuwe ontwikkeling. Schakel over naar het nieuwe Microsoft OLE DB-stuurprogramma (MSOLEDBSQL) voor SQL Server.

Vanaf SQL Server 2008 (10.0.x) en SQL Server Native Client 10.0 ondersteunt OLE DB de verbeterde FILESTREAM-functie. Voor meer informatie over deze functie, zie FILESTREAM Support. Voor voorbeelden, zie Filestream en OLE DB.

Om varbinary(max) waarden groter dan 2 GB te verzenden en ontvangen, gebruikt een applicatie DBTYPE_IUNKNOWN in parameter- en resultaatbindingen. Voor parameters moet de provider IUnknown::QueryInterface aanroepen voor ISequentialStream en voor resultaten die ISequentialStream teruggeven.

Voor OLE DB wordt het controleren gerelateerd aan ISequentialStream-waarden versoepeld. Wanneer wTypeDBTYPE_IUNKNOWN is in de DBBINDING-structuur , kan lengtecontrole worden uitgeschakeld door DBPART_LENGTH weg te laten uit dwPart of door de lengte van de data (bij offset obLength in de databuffer) op ~0 te zetten. In dat geval zal de aanbieder de lengte van de waarde niet controleren en alle beschikbare gegevens via de stream opvragen en teruggeven. Deze wijziging wordt toegepast op alle large object (LOB) types en XML, maar alleen wanneer deze verbonden zijn met SQL Server 2005 (9.x) (of latere) servers. Dit zal ontwikkelaars meer flexibiliteit bieden, terwijl consistentie en achterwaartse compatibiliteit behouden blijven voor bestaande applicaties en servers op lagere niveau.

Deze wijziging treft alle interfaces die data overdragen, voornamelijk IRowset::GetData, ICommand::Execute en IRowsetFastLoad::InsertRow.