リレーショナル・テーブル内の行の更新

「断片」ビューの EGL ドロワーの「データベースの更新」断片は、JSF ハンドラーからレコードが渡されたときに、リレーショナル・テーブルの単一行を更新する関数です。 この断片は、EGL ライブラリーに置かれるよう意図されたものです。

この断片を挿入し構成するには、次のようにします。

  1. EGL エディターで、断片を配置したい場所にカーソルを置きます。 この断片は完全な EGL 関数であるため、関数が有効となる場所にカーソルを置かなくてはなりません。
  2. 「断片」ビューの EGL ドロワーで、「データベースの更新」断片をダブルクリックします。「テンプレートの挿入」ウィンドウが開きます。
  3. 「テンプレートの挿入」ウィンドウで、TableName の値を、 更新対象のテーブルの名前に設定します。
  4. KeyColumn の値を、テーブルの基本キー列に設定します。
  5. 「挿入」をクリックします。
  6. ファイルを保存します。
この断片は次のコードを挿入します。
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

フィードバック