Obsługa strumienia plików (OLE DB)

Dotyczy:SQL Server

Important

SQL Server Native Client (często skracany jako SNAC) został usunięty z SQL Server 2022 (16.x) i SQL Server Management Studio 19 (SSMS). Zarówno dostawca OLE DB klienta natywnego programu SQL Server (SQLNCLI lub SQLNCLI11), jak i starszy dostawca MICROSOFT OLE DB dla programu SQL Server (SQLOLEDB) nie są zalecane w przypadku nowego programowania. Przełącz się na nowy sterownik Microsoft OLE DB (MSOLEDBSQL) dla programu SQL Server na przyszłość.

Począwszy od SQL Server 2008 (10.0.x) oraz SQL Server Native Client 10.0, OLE DB obsługuje rozszerzoną funkcję FILESTREAM. Więcej informacji o tej funkcji można znaleźć w sekcji FILESTREAM Support. Przykłady można znaleźć w Filestream i OLE DB.

Aby wysyłać i odbierać wartości varbinary(max) większe niż 2 GB, aplikacja używa DBTYPE_IUNKNOWN w parametrach i wynikach. Dla parametrów dostawca musi wywołać IUnknown::QueryInterface dla ISequentialStream oraz dla wyników zwracających ISequentialStream.

W OLE DB sprawdzanie wartości ISequentialStream będzie złagodzone. Gdy wType jest DBTYPE_IUNKNOWN w strukturze DBBINDING , sprawdzanie długości można wyłączyć, pomijając DBPART_LENGTH z dwPart lub ustawiając długość danych (przy przesunięciu obLength w buforze danych) na ~0. W takim przypadku dostawca nie sprawdzi długości wartości i zażąda oraz zwróci wszystkie dane dostępne w strumieniu. Ta zmiana będzie stosowana do wszystkich typów dużych obiektów (LOB) oraz XML, ale tylko wtedy, gdy są podłączone do serwerów SQL Server 2005 (9.x) (lub nowszych). Zapewni to większą elastyczność programistom, jednocześnie utrzymując spójność i kompatybilność wsteczną dla istniejących aplikacji i serwerów niższego poziomu.

Ta zmiana dotyczy wszystkich interfejsów przesyłających dane, głównie IRowset::GetData, ICommand::Execute oraz IRowsetFastLoad::InsertRow.