Share via


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 SQL Server Management Studio 19 (SSMS). Non è consigliabile usare sia il provider OLE DB SQL Server Native Client (SQLNCLI o SQLNCLI11) che il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB). Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server in futuro.

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