W jaki sposób można pobrać obiektu BLOB?

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();
}

Index