이진 대형 개체 (BLOB) (예: 다양 한 방법으로 검색할 수 있습니다. DBTYPE_BYTES 를 사용 하 여 BLOB 바이트의 시퀀스로 검색 하거나 ISequentialStream같은 인터페이스를 사용할 수 있습니다. 자세한 내용은 참조 BLOB 및 OLE 개체에서 OLE DB 프로그래머용 참조。
다음 코드에서는 ISequentialStream을 사용 하 여 BLOB를 검색 하는 방법을 보여 줍니다. 매크로 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 cb;
바이트 myBuffer [65536];
카테고리입니다.오픈 (세션, "카테고리");
동안 (카테고리.MoveNext() = S_OK)
{
마
{
categories.pPicture-> 읽기 (myBuffer, 65536, & cb);
/ / 버퍼와 함께 뭔가 할
} (cb > 0); 하면서
categories.pPicture-> Release();
}