-
Forum: Datenbanken
Delphi
by Emwykey,
15. Feb 2018
bitte noch einmal. in diesem fall wird ZU KEINER ZEIT UND UNTER KEINEN UMSTÄNDEN JEMALS eine ID händisch vergeben. jede einzelne ID kommt vom generator. es ist egal, dass der trigger das theoretisch zulässt, da dieser wert niemals anderweitig initialisiert wird.
Das liegt daran, dass die tabelle1_archiv ( das gilt nur für diese tabelle, hier tritt das problem auch, nicht ausschliesslich, auf)...
-
Forum: Datenbanken
Delphi
by Emwykey,
15. Feb 2018
Wir arbeiten aktuell mit Firebird 2.5(3)
das mit dem reproduzieren kann ich auf jeden fall mal versuchen
-
Forum: Datenbanken
Delphi
by Emwykey,
15. Feb 2018
ich glaub eher du verstehst nicht ganz was ich gemeint habe. es gibt eine tabelle. diese wird normal bearbeitet. insert / update / delete. bei jeder aktion werden die werte der tabelle ( bei insert natürlich die neuen, bei update und delete die alten) in eine andere tabelle gescchrieben. diese andere tabelle wiederum holt sich ihre id über einen trigger+generator :) before insert natürlich.
und...
-
Forum: Datenbanken
Delphi
by Emwykey,
15. Feb 2018
Nein, die trigger werden einfach für jede tabelle identisch erstellt, da es hierfür eine funktion gibt. bei meiner tabelle bei der der fehler akut auftrat wird immer über den trigger + generator mit der id versehen, dh dieser generator im speziellen wird ausschliesslich über den trigger angesprochen. andere generatoren welche auch direkt angesprochen werden (zum teil, nicht immer) zeigen aber...
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
Den Export kann ich versuchen, Dateiformat FDB
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
ok, danke! werde ich versuchen!
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
Sorry ich schreib das hier nebenher...
nochmal ausführlich vielleicht:
Es gibt keinen Insert auf die Archiv Tabelle im Code - Ausschließlich über den Trigger auf der Tabelle selbst.
Für eine unvorhersehbare Zeit funktioniert alles prima, plötzlich steht der Generator auf einem alten Wert. Übersprungene Werte habe ich noch nicht gesehen, sind aber auch kein Problem.
Wenn ich den...
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
Hallo, danke für die Antwort, es gibt aber wirklich zu 100 % keine Stelle im Hauptprogramm und auch kein weiteres Programm welches abgesehen von den Triggern auf den Generator zugreift oder Werte in die Tabelle schreibt, ich hab sicherheitshalber noch einmal den ganzen Sourcecode geprüft. Es ist wirklich ausschließlich der Trigger - nach einem Backup und Restore läuft es auch wieder, allerdings...
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
ja, wird übernommen, allerdings in ein anderes feld, da insert update und delete geloggt werden.
Hier ein Beispiel ( Trigger auf TAbelle1 ):
CREATE TRIGGER TRIG_TABELLE1_LOG_BD FOR Tabelle1 BEFORE DELETE POSITION 0 as begin
Insert Into Tabelle1_Archiv (
Zeitstempel, Daten1, Daten2, ID_Tabelle1
) values ( Old.Zeitstemple, Old.Daten1, Old.Daten2, Old.ID ); end
Aufbau der Tabelle1:
ID...
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
Hallo,
Der Generator scheint auf einen früheren Wert zurückzuspringen bei einer oder mehren Aktionen
Wenn ich zB die ID 100 vergeben habe und dann versuche die 101 zu vergeben stehen diese in der Tabelle richtig drin. Bei 102 ( es wird jede ID in dieser Tabelle ausschließlich über den Trigger generiert, es gibt auch Tabellen, da wird er Generator angesprochen ohne Trigger --> daher die...
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
Hallo, der Wert wird nicht initialisiert.. es funktioniert auch in 99% aller Fälle und ohne dass sich an den Befehlen, an der Datenbank, am Programm oder an dem Datenbankserver was ändert funktioniert es nicht mehr. Wenn ich den Generator Wert händisch korrigiere läuft es wieder.
Der Trigger liefert auch immer einen Wert zurück, aber den falschen, weil der Generator plötzlich den falschen Wert...
-
Forum: Datenbanken
Delphi
by Emwykey,
6. Feb 2018
Hallo zusammen,
ich habe seit längerem das Problem, dass Generatoren auf unerklärlichen Wegen plötzlich die falschen Werte enthalten.
Besonders kurios ist folgender Fall:
in Tabelle1 werden über Trigger ( Before Insert, Before Delete und Before Update ) alte Daten in die Tabelle1_Archiv übernommen.
Die ID der Tabelle1_Archiv wird über einen Trigger ( Before Insert )
CREATE TRIGGER...