AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird Trigger verhindert Datenupdate
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Trigger verhindert Datenupdate

Ein Thema von Rynardald · begonnen am 11. Feb 2015 · letzter Beitrag vom 11. Feb 2015
Antwort Antwort
Rynardald

Registriert seit: 18. Sep 2014
26 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Firebird Trigger verhindert Datenupdate

  Alt 11. Feb 2015, 09:50
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBExpert
Hallo ich habe folgendes Problem. Ich habe diese Trigger (mittels IBExpert) in meine Datenbank (Firebird 2.5) eingebaut:
Code:
CREATE TRIGGER TEST_BU0 FOR TEST
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
  if (new.pe_deltag = 't') then new.pe_deldate = current_timestamp;
  if (new.pe_deltag = 'f') then new.pe_deldate = null;
end
^
Das Problem ist nun wenn ich 't' in das Feld pe_deltag einbaue wird das aktuelle Datum in das Feld pe_deldate eingetragen. Wenn ich jedoch nun versuche diesen Vorgang rückgängig zu machen (ich setze pe_deltag wieder auf 'f'), dann lässt dies der trigger nicht mehr zu (sprich pe_deltag bleibt 't' und pe_deldate enthält weiterhin das Datum).
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firebird Trigger verhindert Datenupdate

  Alt 11. Feb 2015, 09:55
Versuch mal:

SQL-Code:
CREATE TRIGGER TEST_BU0 FOR TEST
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
  if (new.pe_deltag = 't') then begin new.pe_deldate = current_timestamp; end
  if (new.pe_deltag = 'f') then begin new.pe_deldate = null; end
end
^
Markus Kinzler
  Mit Zitat antworten Zitat
Rynardald

Registriert seit: 18. Sep 2014
26 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Firebird Trigger verhindert Datenupdate

  Alt 11. Feb 2015, 10:16
ok das problem hat sich gelöst.

Die betreffende Tabelle hatte keinen Primärschlüssel. Nachdem ich der Tabelle einen Primärschlüssel hizugefügt hatte war das Problem weg.
Fragt mich nicht wieso - ich hab keine Ahnung - aber es funktioniert.

@mkinzler: deinen Vorschlag habe ich auch ausprobiert - hat aber nicht funktioniert.

Geändert von Rynardald (11. Feb 2015 um 10:20 Uhr)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird Trigger verhindert Datenupdate

  Alt 11. Feb 2015, 17:30
Wenn kein Primärschlüssel definiert ist, werden für ein Update eventuell alle Felder als Kriterium herangezogen.
Der Client kennt nur den Datensatz mit "t" und NULL im Feld "pe_deldate".
Diesen findet er aber für weitere Updates nicht, da das Feld "pe_deldate" dank des Triggers einen Wert enthält.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz