Można pobrać dużego obiektu binarnego (BLOB) na różne sposoby. DBTYPE_BYTES można używać do pobierania obiektu BLOB jako sekwencja bajtów, lub można użyć interfejsu jak ISequentialStream. Aby uzyskać więcej informacji, zobacz bloków BLOB i obiekty OLE OLE DB Programmer's Reference.
Poniższy kod ilustruje sposób pobierania obiektu BLOB przy użyciu ISequentialStream. Makro BLOB_ENTRY pozwala na określenie interfejs i flagi używane dla interfejsu. Po otwarciu tabeli, kod wywołuje odczytu wielokrotnie na ISequentialStream do odczytywania bajtów z obiektem BLOB. Kod wywołuje dopuszczenie zbywania wskaźnika interfejsu przed wywołaniem metody MoveNext uzyskać następnego rekordu.
klasa CCategories
{
publiczne:
ISequentialStream * pPicture;
BEGIN_COLUMN_MAP(CCategories)
BLOB_ENTRY (4, IID_ISequentialStream, STGM_READ, pPicture)
END_COLUMN_MAP()
};
CTablelt;CAccessor <CCategories> > kategorii;
ULONG cb;
BAJT myBuffer [65536];
Kategorie.Otwórz (session, „"kategorie");
podczas (kategorie.MoveNext() == wartość S_OK)
{
czy
{
Categories.pPicture - > odczytu (myBuffer, 65536 & cb);
/ / Coś z buforu
} podczas (cb > 0);
Categories.pPicture - > Release();
}