Ви можете отримати на великих двійкових об'єктів (BLOB) по-різному. DBTYPE_BYTES можна використовувати для отримання КАПЛЯ як послідовність байтів, або ви можете використовувати інтерфейс як ISequentialStream. Докладніше, перегляньте статтю БУЛЬБАШКИ і об'єктів OLE в OLE DB програміста посилання.
Наступний код показує, як отримати ЛЯПКА, допомогою ISequentialStream. Макрос BLOB_ENTRY дозволяє вам вказати інтерфейс і прапори використовуються для інтерфейсу. Після відкриття таблиці, код закликає читання неодноразово ISequentialStream читати байт з BLOB-ОБ'ЄКТІ. Код називає реліз розпоряджатися інтерфейс курсор перед викликом MoveNext отримати наступний запис.
клас CCategories
{
готелю:
ISequentialStream * pPicture;
BEGIN_COLUMN_MAP(CCategories)
BLOB_ENTRY (4, IID_ISequentialStream, STGM_READ, pPicture)
END_COLUMN_MAP()
};
CTablelt;CAccessor <CCategories> > категорії;
ULONG комерційний банк;
БАЙТ myBuffer [65536];
категорії.Відкрити (сесія, "Категорії");
під час (категорії.MoveNext() = = S_OK)
{
зробити
{
Categories.pPicture - > читати (myBuffer, 65536 & комерційний банк);
/ / Зробити щось з буфера
} під час (комерційний банк > 0);
Categories.pPicture - > Release();
}