วิธีสามารถฉันเรียกแบบ BLOB?

คุณสามารถเรียกแบบไบนารีใหญ่วัตถุ (BLOB) ด้วยวิธีการต่าง ๆ คุณสามารถใช้DBTYPE_BYTESในการเรียก BLOB ที่เป็นลำดับของไบต์ หรือคุณสามารถใช้อินเทอร์เฟซเหมือนISequentialStream ดูข้อมูลเพิ่มเติม BLOBS และวัตถุ OLEในการอ้างอิงของ OLE DB โปรแกรมเมอร์ของ?

รหัสต่อไปนี้แสดงวิธีการเรียก BLOB การใช้ISequentialStream แมโคBLOB_ENTRYอนุญาตให้คุณระบุอินเทอร์เฟซและใช้สำหรับอินเทอร์เฟซสำหรับค่าสถานะ หลังจากเปิดตาราง รหัสเรียกอ่านซ้ำ ๆ บนISequentialStreamอ่านไบต์จาก BLOB รหัสเรียกออกกำจัดตัวชี้ของอินเทอร์เฟซสำหรับก่อนการเรียกMoveNextรับระเบียนถัดไป?

คลาส CCategories
{
สาธารณะ:
   ISequentialStream * pPicture

BEGIN_COLUMN_MAP(CCategories)
   BLOB_ENTRY (4, IID_ISequentialStream, STGM_READ, pPicture)
END_COLUMN_MAP()
};

CTableltCAccessor <CCategories> > ประเภท
ULONG cb
ไบต์ myBuffer [65536];

หมวดเปิด (เซสชัน "ประเภท");
ในขณะที่ (หมวดMoveNext() == S_OK)
{
   ทำ
   {
      categories.pPicture - > อ่าน (myBuffer, 65536, & cb);
      / / ทำอะไรกับบัฟเฟอร์
   } ขณะ (cb > 0);
   categories.pPicture - > Release()
}

Index