Zeilen in einer relationalen Tabelle aktualisieren
Das Fragment 'Datenbankaktualisierung' im EGL-Fach der Snippetansicht ist eine Funktion, mit der eine einzelne Zeile einer relationalen Tabelle aktualisiert wird, wenn ein Datensatz von einem JSF-Handler übergeben wird. Dieses Fragment ist für eine EGL-Bibliothek bestimmt.
Gehen Sie wie folgt vor, um dieses Fragment einzufügen und zu konfigurieren:
- Setzen Sie im EGL-Editor den Cursor an die Stelle, an der Sie das Fragment einfügen möchten. Da es sich bei diesem Fragment um eine vollständige EGL-Funktion handelt, muss der Cursor an einer Position platziert werden, an der eine Funktion eingefügt werden darf.
- Doppelklicken Sie im EGL-Fach der Snippetsicht auf das Fragment 'Datenbankaktualisierung'. Das Fenster 'Vorlage einfügen' wird geöffnet.
- Legen Sie im Fenster 'Vorlage einfügen' den Wert von TableName auf den Namen der Tabelle fest, die Sie aktualisieren.
- Legen Sie den Wert von KeyColumn auf die Primärschlüsselspalte der Tabelle fest.
- Klicken Sie auf 'Einfügen'.
- Speichern Sie die Datei.
Mit diesem Fragment wird der folgende Code eingefügt:
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