Announcement

Collapse
No announcement yet.

IB 7.5: Löschen von Datensätzen verhindern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • IB 7.5: Löschen von Datensätzen verhindern

    Hallo,
    ich möchte in Tabellen verhindern, dass bestimmte bzw. alle Datensätze gelöscht werden können. Welches Verfahren ist dazu am praktischsten?
    * Trigger Before Delete: SQL-Errorcode manuell setzen (wie geht das)?
    * Zusätzliches Datenfeld "Can_Delete" vorsehen und prüfen?
    * oder...?
    Die Tabelle selbst kann nicht read-only sein, weil Insert und Update weiterhin ohne Einschränkung möglich sein sollen.
    Danke für Tipps!
    <b>Im Übrigen alles Gute für 2006.</b>
    Jürgen

  • #2
    Hallo,
    ich würde das mit einem BEFORE DELETE Trigger und einer benutzerdefinierten Exception machen. Beispiel:
    <code>
    CREATE EXCEPTION E_NODELETE 'Datensatz darf nicht gelöscht werden.';
    SET TERM ^^ ;
    CREATE TRIGGER T_STUDENTS_BD FOR STUDENTS ACTIVE BEFORE DELETE POSITION 0 AS
    begin
    exception E_NODELETE;
    end
    ^^
    SET TERM ; ^^
    </code>
    Im Trigger kannst Du natürlich das Werfen der Exception in jegliche Logik reinpacken. D.h. die Exception nur dann werfen, wenn eine bestimmte Bedingung erfüllt ist, oder Ähnliches.
    <br>
    Thoma
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Danke,
      nach so etwas habe ich gesucht. Da es keine weitere Antwort gibt, scheint das wirklich das einfachste zu sein.
      Jürge

      Comment

      Working...
      X