FILESTREAM-Unterstützung (OLE DB)

Seit SQL Server 2008 und SQL Server Native Client 10.0 unterstützt OLE DB das verbesserte FILESTREAM-Feature. Informationen zu diesem Feature finden Sie unter FILESTREAM-Unterstützung.

Um varbinary(max)-Werte über 2 GB zu senden und zu empfangen, verwendet eine Anwendung DBTYPE_IUNKNOWN in Parameter- und Ergebnisbindungen. Für Parameter muss der Provider IUnknown::QueryInterface und für Ergebnisse ISequentialStream aufrufen, die ISequentialStream zurückgeben. 

Für OLE DB wird die auf ISequentialStream-Werte bezogene Überprüfung gelockert. Wenn wType gleich DBTYPE_IUNKNOWN in der DBBINDING-Struktur ist, kann die Längenüberprüfung deaktiviert werden, indem entweder DBPART_LENGTH in dwPart ausgelassen wird oder indem die Länge der Daten (beim 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 Stream 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-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.