ヘッダーをスキップ
Oracle Fusion Middleware PL/SQL Web Toolkitリファレンス
11gリリース1(11.1.1)
B56250-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

5 owa_opt_lockパッケージ

owa_opt_lockパッケージには、更新情報が失われるのを防ぐためにコミット時ロック方式を実施するサブプログラムが含まれています。ユーザーが更新しようとしている行が、作業中に他のユーザーによって変更されているかどうかを検査します。

HTTPはステートレスなプロトコルなので、PL/SQL Gatewayでは従来型のデータベース・ロック構造は使用できません。owa_opt_lockパッケージは、更新情報が失われる問題に対処するための2つの方法を提供します。

これらの方法はオプティミスティックです。他のユーザーが更新できないようにするのではなく、更新の割込みが発生した場合に現在の更新を無効にします。

5.1 サマリー

owa_opt_lock.vcArrayデータ型: ROWIDを格納するデータ型です。

owa_opt_lock.checksumファンクション: チェックサムの値を返します。

owa_opt_lock.get_rowidファンクション: ROWIDの値を返します。

owa_opt_lock.store_valuesプロシージャ: 後で検証するために、変更前の値を非表示フィールドに格納します。

owa_opt_lock.verify_valuesファンクション: 格納されている値と変更後の値を比較して検証します。

5.2 owa_opt_lock.vcArrayデータ型

このデータ型は、ROWIDを保持するためのPL/SQLの表です。

vcArray型は、table of varchar2(2000) index by binary_integerです。

このデータ型はowa_text.vc_arrデータ型とは異なることに注意してください。

表5-1にowa_opt_lock.vcArrayデータ型のプロパティを示します。

表5-1 owa_opt_lock.vcArrayデータ型

プロパティ 定義

構文:

owa_opt_lock.vcArray: データ型

戻り値:

なし


5.3 owa_opt_lock.checksumファンクション

指定された文字列または表内の行に対するチェックサムの値を返します。表内の行の場合は、その行の列の値に基づいてチェックサムの値を計算します。このファンクションには2つのバージョンがあります。

1番目のバージョンは、指定された文字列に基づくチェックサムを返します。これは、Internet 1プロトコルに基づいてデータベースにより実行される純粋な32ビット・チェックサムです。

2番目のバージョンは、表内の行の値に基づいてチェックサムを返します。これは、Internet 1プロトコルに基づく不純な32ビット・チェックサムです。

表5-2にowa_opt_lock.checksumファンクションのプロパティを示します。

表5-2 owa_opt_lock.checksumファンクション

プロパティ 定義

構文:

owa_opt_lock.checksum(p_buff in varchar2) return number;
owa_opt_lock.checksum(
   p_owner        in       varchar2
   p_tname        in       varchar2
   p_rowid        in       rowid) return number;

パラメータ:

p_buff: チェックサムを計算する文字列。

p_owner: 表の所有者。

p_tname: 表の名前。

p_rowid: チェックサムの値を計算するp_tnameの行。vcArrayの値を適切なrowidに変換するには、owa_opt_lock.get_rowidファンクションを使用する。

戻り値:

チェックサムの値。


5.4 owa_opt_lock.get_rowidファンクション

指定されたowa_opt_lock.vcArrayデータ型からROWIDデータ型を返します。

表5-3にowa_opt_lock.get_rowidファンクションのプロパティを示します。

表5-3 owa_opt_lock.get_rowidファンクション

プロパティ 定義

構文:

owa_opt_lock.get_rowid(p_old_values in vcArray) return rowid;

パラメータ:

p_old_values: このパラメータは通常、HTMLフォームから渡される。

戻り値:

ROWID。


5.5 owa_opt_lock.store_valuesプロシージャ

後で更新する行の列の値を格納します。値は、HTMLフォームの非表示要素に格納されます。行を更新する前に、これらの値と行の現在の値を比較して、行の値が変更されていないことを確認します。値が変更されている場合は、ユーザーに警告を出し、更新を実行するかどうかをユーザーに決定させることができます。

表5-4にowa_opt_lock.store_valuesプロシージャのプロパティを示します。

表5-4 owa_opt_lock.store_valuesプロシージャ

プロパティ 定義

構文:

owa_opt_lock.store_values(
   p_owner        in       varchar2
   p_tname        in       varchar2
   p_rowid        in       rowid);

パラメータ:

p_owner: 表の所有者。

p_tname: 表の名前。

p_rowid: 値を格納する行。

実行結果:

一連の非表示フォーム要素。

表の所有者に対して、1つの非表示フォーム要素が作成される。要素の名前はold_p_tname。ここで、p_tnameは表の名前。要素の値は所有者名。

表の名前に対して、1つの非表示フォーム要素が作成される。要素の名前はold_p_tname。ここで、p_tnameは表の名前。要素の値は表の名前。

行の列ごとに1つの要素が作成される。要素の名前はold_p_tname。ここで、p_tnameは表の名前。要素の値は列の値。

関連項目:

「owa_opt_lock.verify_valuesファンクション」


5.6 owa_opt_lock.verify_valuesファンクション

指定された行の値が、最後の問合せ以降に更新されているかどうかを検証します。このファンクションは、owa_opt_lock.store_valuesプロシージャとあわせて使用します。

表5-5にowa_opt_lock.verify_valuesファンクションのプロパティを示します。

表5-5 owa_opt_lock.verify_valuesファンクション

プロパティ 定義

構文:

owa_opt_lock.verify_values(p_old_values in vcArray) return boolean;

パラメータ:

p_old_values: 次の情報を含むPL/SQLの表。

p_old_values(1)は、表の所有者を示す。

p_old_values(2)は、表を示す。

p_old_values(3)は、検証する行のrowidを示す。

残りの索引には、表の列の値が含まれる。

通常、このパラメータはHTMLフォームから渡される。このHTMLフォームは、以前にowa_opt_lock.store_valuesプロシージャをコールして、非表示フォーム要素に行の値を格納したもの。

戻り値:

他の更新が実行されていない場合はTRUE、実行されている場合はFALSE。

関連項目:

「owa_opt_lock.store_valuesプロシージャ」