次の方法で共有


大きなデータを設定する方法 (OLE DB)

コンシューマは、独自のストレージ オブジェクトにポインタを渡すために、BLOB 列の値をバインドするアクセサを作成します。次に、IRowsetChange::SetData メソッドまたは IRowsetChange::InsertRow メソッドを呼び出します。

手順

BLOB データを設定するには

  1. BLOB 列へのアクセス方法を説明する DBOBJECT 構造体を作成します。DBOBJECT 構造体の dwFlag 要素に STGM_READ を設定し、iid 要素に IID_ISequentialStream (公開されるインターフェイス) を設定します。

  2. 行セットが更新可能になるように、DBPROPSET_ROWSET プロパティ グループのプロパティを設定します。

  3. DBBINDING 構造体の配列を使用して、各列に 1 つずつ一連のバインドを作成します。DBBINDING 構造体の wType 要素に DBTYPE_IUNKNOWN を設定し、pObject 要素に作成した DBOBJECT 構造体へのポインタを設定します。

  4. DBBINDINGS 構造体の配列内のバインド情報を使用して、アクセサを作成します。

  5. GetNextRows を呼び出して、次の行を行セットにフェッチします。GetData を呼び出して、その行セットからデータを読み取ります。

  6. データを設定するには、データ (および長さのインジケータ) を保持するストレージ オブジェクトを作成し、次に BLOB 列をバインドするアクセサを指定して IRowsetChange::SetData (または IRowsetChange::InsertRow) を呼び出します。

解説

完全なサンプル コードは、WorkingWithBLOBs.cpp ファイルにあります。このサンプルを含むアーカイブは、MSDN の SQL Server ダウンロード ページからダウンロードできます。

このサンプルは、Microsoft Visual C++ 2005 を使用して開発されています。

セキュリティに関する注意セキュリティに関する注意

可能な場合は、Windows 認証を使用します。Windows 認証が使用できない場合は、実行時に資格情報を入力するようユーザーに求めます。資格情報をファイルに保存するのは避けてください。資格情報を保存する必要がある場合は、Win32 Crypto API を使用して暗号化してください。