BLOB を取得する方法?

さまざまな方法でバイナリ ラージ オブジェクト (BLOB) を取得することができます。DBTYPE_BYTESを使用して BLOB をバイトのシーケンスとして取得することができます。 または、 ISequentialStreamのようなインターフェイスを使用することができます。詳細についてを参照してください BLOB と OLE オブジェクトにOLE DB プログラマ リファレンス。

ISequentialStreamを使用して BLOB を取得する方法を次に示します。BLOB_ENTRYマクロでは、インターフェイスと、インターフェイスに使用するフラグを指定することができます。テーブルを開いた後、コード読み取り繰り返し、BLOB からバイトを読み取るには、 ISequentialStreamを呼び出します。次のレコードを取得するには、 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();}

Index