다음을 통해 공유


BLOB 검색

다양한 방법으로 BLOB(Binary Large Object)을 검색할 수 있습니다. BLOB을 바이트 시퀀스로 검색하거나 다음과 같은 인터페이스를 사용하는 데 사용할 DBTYPE_BYTES 수 있습니다 ISequentialStream. 자세한 내용은 OLE DB 프로그래머 참조의 BLOBS 및 OLE 개체를 참조하세요.

다음 코드에서는 .를 사용하여 ISequentialStreamBLOB을 검색하는 방법을 보여 있습니다. 매크로 BLOB_ENTRY 인터페이스 및 인터페이스에 사용되는 플래그를 지정할 수 있습니다. 테이블을 연 후 코드는 BLOB에서 바이트를 읽기 위해 반복적으로 ISequentialStream 호출 Read 됩니다. 코드는 다음 레코드를 가져오기 위해 호출하기 전에 인터페이스 포인터를 삭제하도록 호출 Release MoveNext 합니다.

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 데이터를 처리하는 매크로에 대한 자세한 내용은 매크로의 열 맵 매크로 및 OLE DB 소비자 템플릿에 대한 전역 함수를 참조하세요.

참고 항목

접근자 사용
OLE DB 소비자 템플릿에 대한 매크로 및 전역 함수