大きなデータを設定する方法 (OLE DB)
コンシューマは、独自のストレージ オブジェクトにポインタを渡すために、BLOB 列の値をバインドするアクセサを作成します。次に、IRowsetChange::SetData メソッドまたは IRowsetChange::InsertRow メソッドを呼び出します。
手順
BLOB データを設定するには
BLOB 列へのアクセス方法を説明する DBOBJECT 構造体を作成します。DBOBJECT 構造体の dwFlag 要素に STGM_READ を設定し、iid 要素に IID_ISequentialStream (公開されるインターフェイス) を設定します。
行セットが更新可能になるように、DBPROPSET_ROWSET プロパティ グループのプロパティを設定します。
DBBINDING 構造体の配列を使用して、各列に 1 つずつ一連のバインドを作成します。DBBINDING 構造体の wType 要素に DBTYPE_IUNKNOWN を設定し、pObject 要素に作成した DBOBJECT 構造体へのポインタを設定します。
DBBINDINGS 構造体の配列内のバインド情報を使用して、アクセサを作成します。
GetNextRows を呼び出して、次の行を行セットにフェッチします。GetData を呼び出して、その行セットからデータを読み取ります。
データを設定するには、データ (および長さのインジケータ) を保持するストレージ オブジェクトを作成し、次に BLOB 列をバインドするアクセサを指定して IRowsetChange::SetData (または IRowsetChange::InsertRow) を呼び出します。
解説
完全なサンプル コードは、WorkingWithBLOBs.cpp ファイルにあります。このサンプルを含むアーカイブは、MSDN の SQL Server ダウンロード ページからダウンロードできます。
このサンプルは、Microsoft Visual C++ 2005 を使用して開発されています。
セキュリティに関する注意 |
---|
可能な場合は、Windows 認証を使用します。Windows 認証が使用できない場合は、実行時に資格情報を入力するようユーザーに求めます。資格情報をファイルに保存するのは避けてください。資格情報を保存する必要がある場合は、Win32 Crypto API を使用して暗号化してください。 |