Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Generatorwerte setzen /Trigger deaktivieren

  Alt 11. Jan 2004, 03:58
Ja, das da kommt der Sache schon sehr, sehr nahe. Der Effekt fiel genau deshalb nicht auf, weil der Trigger nicht zum Zuge kommt, es sei denn in der alten Table ist das AutoInc Feld nicht besetzt. Eben wegen :

IF (NEW.ID IS NULL) THEN ist diese eben NICHT Null, sondern der alte AutoInc-Wert Und da die Table große Lücken hat, ist in Interbase (bzw. FB 1.0) die Gefahr nicht so groß, bei kurzen Testeingaben diesen Fehler überhaupt zu sehen. Aber der wird mit Sicherheit kommen. Die IDs müssen so bleiben, wegen der referentiellen Integrität der DB. Das geht jetzt so mit einer Query :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  pFIBQuery1.SQL.Text := 'SET GENERATOR GEN_DS_ID TO 59';
  pFIBQuery1.ExecQuery;
  pFIBTransAction1.Commit;
  pFIBDataBase1.Close;
end;
Ist mit IBExpert überprüft. Allerdings taucht da auch noch eine Ungereimtheit auf. Das Hauptproblem besteht nun eigentlich nur noch darin, wo und wie ich den Trigger kurzfristig programmgesteuert deaktiviere.
Gruß
Hansa
  Mit Zitat antworten Zitat