リレーショナル・テーブル内の行の更新
「断片」ビューの EGL ドロワーの「データベースの更新」断片は、JSF ハンドラーからレコードが渡されたときに、リレーショナル・テーブルの単一行を更新する関数です。 この断片は、EGL ライブラリーに置かれるよう意図されたものです。
この断片を挿入し構成するには、次のようにします。
- EGL エディターで、断片を配置したい場所にカーソルを置きます。 この断片は完全な EGL 関数であるため、関数が有効となる場所にカーソルを置かなくてはなりません。
- 「断片」ビューの EGL ドロワーで、「データベースの更新」断片をダブルクリックします。「テンプレートの挿入」ウィンドウが開きます。
- 「テンプレートの挿入」ウィンドウで、TableName の値を、 更新対象のテーブルの名前に設定します。
- KeyColumn の値を、テーブルの基本キー列に設定します。
- 「挿入」をクリックします。
- ファイルを保存します。
この断片は次のコードを挿入します。
Function updateRec(EGL_RecordNameNew EGL_RecordName)
//Function name - call this function passing
//the EGL_RecordName Record as a parameter
EGL_RecordNameOld EGL_RecordName; //A copy of the Record,
//used to lock the table row, and obtain the existing row values
//prior to update
try
EGL_RecordNameOld.Table_Key_column_ID
= EGL_RecordNameNew.Table_Key_column_ID;
get EGL_RecordNameOld forUpdate; //Get the existing row.
//Note that if you had custom processing to do,
//you would insert after this call
move EGL_RecordNameNew to EGL_RecordNameOld byName;
//Move the updated values to the copy-row
replace EGL_RecordNameOld; //And replace the row in the database.
sysLib.commit(); //Commit your changes to the Database
onException (ex AnyException) //If the update fails...
sysLib.rollback(); //cancel all database updates
//(assuming this is permitted by your database)
// and call a custom error handling routine or something
end
end