Як я можу відновити КРАПЛІ?

Ви можете отримати на великих двійкових об'єктів (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();
}

Index