FILESTREAM-Unterstützung (OLE DB)
Gilt für: SQL Server
Wichtig
Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Sowohl der OLE DB-Anbieter für den SQL Server Native Client (SQLNCLI oder SQLNCLI11) als auch der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für Neuentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL).
Ab SQL Server 2008 (10.0.x) und SQL Server Native Client 10.0 unterstützt OLE DB das erweiterte FILESTREAM-Feature. Weitere Informationen zu diesem Feature finden Sie unter FILESTREAM-Unterstützung. Beispiele finden Sie unter FILESTREAM und OLE DB.
Eine Anwendung verwendet DBTYPE_IUNKNOWN in Parameter- und Ergebnisbindungen, um varbinary(max) -Werte zu senden und zu empfangen, die größer als 2 GB sind. Der Anbieter muss für Parameter IUnknown::QueryInterface für ISequentialStream und für Ergebnisse abrufen, die ISequentialStream zurückgeben.
Für OLE DB wird die auf ISequentialStream-Werte bezogene Überprüfung gelockert. Wenn wType in der DBBINDING-Struktur DBTYPE_IUNKNOWN ist, kann die Längenüberprüfung deaktiviert werden, indem DBPART_LENGTH aus dwPart ausgelassen wird oder die Länge der Daten (bei Offset obLength im Datenpuffer) auf ~0 festgelegt wird. In diesem Fall überprüft der Provider die Länge des Werts nicht und fordert alle Daten an (oder gibt sie zurück), die über den Datenstrom zur Verfügung stehen. Diese Änderung wird auf alle LOB-Typen (Large Object) und auf XML angewendet, allerdings nur, wenn eine Verbindung zu SQL Server 2005 (9.x)-Servern (oder höher) besteht. Auf diese Weise erhalten Entwickler eine höhere Flexibilität, während sie die Konsistenz und Abwärtskompatibilität für vorhandene Anwendungen und Downlevelserver beibehalten.
Diese Änderung wirkt sich auf alle Schnittstellen aus, die Daten übertragen (hauptsächlich IRowset::GetData, ICommand::Execute und IRowsetFastLoad::InsertRow).