BLOB 검색
다양한 방법으로 BLOB(Binary Large Object)을 검색할 수 있습니다. BLOB을 바이트 시퀀스로 검색하거나 다음과 같은 인터페이스를 사용하는 데 사용할 DBTYPE_BYTES
수 있습니다 ISequentialStream
. 자세한 내용은 OLE DB 프로그래머 참조의 BLOBS 및 OLE 개체를 참조하세요.
다음 코드에서는 .를 사용하여 ISequentialStream
BLOB을 검색하는 방법을 보여 있습니다. 매크로 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 소비자 템플릿에 대한 전역 함수를 참조하세요.