다음을 통해 공유


BLOB 검색

여러 방법으로 BLOB(이진 대형 개체)를 검색할 수 있습니다. DBTYPE_BYTES를 사용하여 BLOB를 바이트의 시퀀스로 검색하거나 ISequentialStream 같은 인터페이스를 사용할 수 있습니다. 자세한 내용은 OLE DB Programmer's Reference에서 BLOBS and OLE Objects를 참조하십시오.

다음 코드는 ISequentialStream을 사용하여 BLOB를 검색하는 방법에 대해 보여 줍니다. 매크로 BLOB_ENTRY를 사용하면 인터페이스와 인터페이스에 사용되는 플래그를 지정할 수 있습니다. 테이블을 연 후 코드는 ISequentialStream에서 Read를 반복 호출하여 BLOB의 바이트를 읽습니다. 코드는 다음 레코드를 구하는 MoveNext를 호출하기 전에 Release를 호출하여 인터페이스 포인터를 삭제합니다.

class CCategories
{
public:
   ISequentialStream*   pPicture;

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

CTable<CAccessor<CCategories> > categories;
ULONG          cb;
BYTE            myBuffer[65536];

categories.Open(session, "Categories");
while (categories.MoveNext() == S_OK)
{
   do
   {
      categories.pPicture->Read(myBuffer, 65536, &cb);
      // Do something with the buffer
   } while (cb > 0);
   categories.pPicture->Release();
}

BLOB 데이터를 처리하는 매크로에 대한 자세한 내용은 Macros and Global Functions for OLE DB Consumer Templates의 "열 맵 매크로"를 참조하십시오.

참고 항목

개념

접근자 사용

기타 리소스

Macros and Global Functions for OLE DB Consumer Templates