Supporto FILESTREAM (OLE DB)

Si applica a: SQL Server

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e da SQL Server Management Studio 19 (SSMS). Il provider OLE DB di SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider OLE DB legacy Microsoft per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. In futuro, passare al nuovo driver Microsoft OLE DB (MSOLEDBSQL) per SQL Server.

A partire da SQL Server 2008 (10.0.x) e SQL Server Native Client 10.0, OLE DB supporta la funzionalità FILESTREAM avanzata. Per altre informazioni su questa funzionalità, vedere Supporto FILESTREAM. Per gli esempi, vedere FILESTREAM e OLE DB.

Per inviare e ricevere valori varbinary(max) maggiori di 2 GB, un'applicazione usa DBTYPE_IUNKNOWN in associazioni di parametri e di risultati. Per i parametri il provider deve chiamare IUnknown::QueryInterface per ISequentialStream e per i risultati che restituiscono ISequentialStream.

Per OLE DB il controllo relativo ai valori ISequentialStream diventa meno rigido. Se wType è DBTYPE_IUNKNOWN nello struct DBBINDING, il controllo della lunghezza può essere disabilitato omettendo DBPART_LENGTH in dwPart o impostando la lunghezza dei dati (in corrispondenza dell'offset obLength nel buffer dei dati) su ~0. In questo caso, il provider non controllerà la lunghezza del valore e richiederà e restituirà tutti i dati disponibili tramite il flusso. Questa modifica verrà applicata a tutti i tipi LOB (Large Object) e XML, ma solo in caso di connessione a server SQL Server 2005 (9.x) o versione successiva. In questo modo, gli sviluppatori disporranno di maggiore flessibilità, mantenendo la coerenza e la compatibilità con le versioni precedenti per applicazioni esistenti e server legacy.

Questa modifica ha effetto su tutte le interfacce che trasferiscono dati, principalmente IRowset::GetData, ICommand::Execute e IRowsetFastLoad::InsertRow.

Vedi anche

Programmazione in SQL Server Native Client