|
TLOBLocator |
Top Previous Next |
|
Unit 説明 Oracle8は新しくより柔軟なlongデータ型、LOB (Large Object)を提供します。現在、3つの違う種類のLOBがあります: w CLOB Character LOB, Longに類似しています w BLOB Binary LOB, Long Rawに類似しています w BFile Binary File, データベースサーバー上のファイルにアクセスします 直接LOBカラムのデータにアクセスすることは稀でしょう。代わりにそんなカラムにあるデータを読み書きするためにはLOB Locatorを使うことになります。LOB LocatorはLOBカラムを持ち、実際のデータを指し示すレコードに格納されています。セレクトリストにLOBカラムを含むとき、データではなくLOB Locatorをフェッチすることになります。LOB Locatorは、LOBの強力な機能全てを使えるようにするTLOBLocatorオブジェクト内にカプセル化されています。 LOBカラムにnull値が含まれている時、レコードにはLOB Locatorが含まれません。 それゆえnull LOBを選択するとき、LOBデータにアクセスすることは出来ません。Null LOBを更新する時は、最初に空のLOB(null LOBとは全く違ったものです)を含むカラムを更新する必要があります。そしてこの新しく作られたLOB Locatorを使って実際のデータを書き込みます。LOBカラムを持つ新しいレコードを挿入する時、同じ仕組みを適用します。CreateTemporary コンストラクタで作られた一時的なLOBにはこの制限はありません。LOBを作り、データを書き込み、続けてInsert、UpdateそしてPL/SQLコールのためにこれを使います。 3通りの方法でTLOBlocatorオブジェクトを取得できます:
TLOBLocatorはTstreamオブジェクトの子孫なので、慣れ親しんだRead, WriteとSeekメソッドを使ってLOBのデータにアクセスすることが出来ます。Sizeプロパティも同様です。 TLOBLocatorオブジェクトを使う以外にも、Direct Oracle AccessにはLOBのデータにアクセスする更に二つの方法がにあります:
LOBに関する詳しい情報は、Oracleの"Server Application Developer's Guide"をご覧ください。 |