คุณสามารถเรียกแบบไบนารีใหญ่วัตถุ (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()
}