Example - Updating LOB data

Top  Previous  Next

LOBデータを更新するために、TLOBLocator を取得して、データを書き込むために使ってください。 これは、レコードをLOBでロックする以外は、LOBを選択するのと変わりません。 'select ... for update'を使うことによって実現できます。 データを書いたあと、updateの前にLOBが保持していたデータを取り除くためにSizeプロパティかTrimメソッドを使うことが出来ます:

var LOB: TLOBLocator;

   Buffer: array[0..99] of Byte;

begin

// select id, lobcolumn from lobtable for update

with LOBQuery do

begin

   Execute;

   LOB := LOBField('LOBCOLUMN');

   LOB.Write(Buffer, 100);

   LOB.Trim;  // Set the size to the current position, which is 100

end;

end;

 

TLOBLocatorは3つの更新メソッドを持ちます:

w        Copy(Source: TLOBLocator; Length: Integer)
       <Source>の現在位置からデータを<Length>バイトだけTLOBLocatorの現在位置へコピーします。
w        Append(Source: TLOBLocator)
       Source>の全てのデータをTLOBLocatorの最後に追加します。
w        Erase(Length: Integer)
       TLOBLocatorのぜんざい位置に<Length>バイトだけゼロ (BLOB)かスペース (CLOB)で埋めます。

これらメソッドに関しては、一切のLOBでーたはネットワークに対して渡されません。全ての処理はサーバー上で完了します。