Udostępnij za pośrednictwem


BLOBs i obiektów OLE

The SQL Server Native Client OLE DB provider exposes the ISequentialStream interface to support consumer access to SQL Serverntext, text, image, varchar(max), nvarchar(max), varbinary(max), and xml data types as binary large objects (BLOBs).The Read metoda on ISequentialStream lets the consumer retrieve much data in manageable chunks.

Przykładowy demonstruje tej funkcji zobacz Readme_Setting Large Data (OLE DB).

The SQL Server Native klient OLE DB dostawca can use a consumer-implemented IStorage interfejs when the consumer provides the interfejs pointer in an metoda dostępu bound for data modification.

W wypadku typów danych dużą wartość SQL Server Macierzystego dostawca klient OLE DB sprawdza, czy typ rozmiar założeń w IRowset i DDL interfejsów.kolumna z varchar, nvarchar, and varbinarnym typy danych z maksymalny rozmiar ustawiony na nieograniczoną liczbę będzie można przedstawić w ISLONG za pomocą zestawów wierszy schematu i interfejsów zwracanie typami danych kolumn.

The SQL Server Native klient OLE DB dostawca exposes the varchar(max), varbinary(max) and nvarchar(max) types as DBTYPE_STR, DBTYPE_BYTES and DBTYPE_WSTR respectively.

Aby pracować z tymi typami aplikacji są następujące opcje:

  • Powiązania jako typ (DBTYPE_STR DBTYPE_BYTES, DBTYPE_WSTR).Jeżeli bufor nie jest duży za mało obcinania wystąpi, dokładnie tak jak w przypadku tych typów w poprzednich wersjach (mimo, że dostępne są większe wartości).

  • Wiązanie jako typ, a także określić DBTYPE_BYREF.

  • Powiązanie jako DBTYPE_IUNKNOWN i użyć przesyłania strumieniowego.

Jeśli używany jest granicą DBTYPE_IUNKNOWN ISequentialStream strumienia funkcjonalności.The SQL Server Native klient OLE DB dostawca supports wiązanie output parameters as DBTYPE_IUNKNOWN for large value data types to facilitate scenarios where a procedura przechowywana returns these data types as return values which will be exposed as DBTYPE_IUNKNOWN to the klient.

Ograniczenia obiektów składowania

  • The SQL Server Native klient OLE DB dostawca can support only a single open storage object. Próbuje otworzyć więcej niż jeden obiekt magazynu (Aby uzyskać więcej niż jedno odwołanie ISequentialStream wskaźnikiem interfejs) zwracają DBSTATUS_E_CANTCREATE.

  • W SQL Server Macierzysta klient OLE DB dostawca, wartość domyślna, DBPROP_BLOCKINGSTORAGEOBJECTS odczytać — VARIANT_TRUE jest jedyną właściwością. Oznacza to, że jeśli obiekt magazynu jest aktywne, niektóre metody (inne niż te dotyczące obiektów składowania) zakończy się niepowodzeniem z E_UNEXPECTED.

  • Długość danych przedstawionych przez obiekt implementowane przez konsumenta magazynu muszą być wykonane wiadomo, że SQL Server Macierzysta klient OLE DB przy tworzeniu metoda dostępu wiersza, która odwołuje się obiekt magazynu. Konsument musi powiązania wskaźnik długości w strukturze DBBINDING używany do tworzenia metoda dostępu.

  • Jeśli wiersz zawiera więcej niż jedną wartość dużych DBPROP_ACCESSORDER nie jest DBPROPVAL_AO_RANDOM, konsument musi albo użycie SQL Server Macierzysta klient OLE DB dostawca obsługiwane kursor zestaw wierszy do pobierania danych zestaw wierszy lub przetwarzania wszystkich wartości danych dużych przed pobraniem wartości innych zestaw wierszy. W przypadku DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM, SQL Server Macierzystego dostawca klient OLE DB buforuje wszystkich typów danych xml jako duże obiekty binarne (bloków BLOB), dzięki czemu są dostępne w dowolnej kolejności.