AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Generatorwerte setzen /Trigger deaktivieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generatorwerte setzen /Trigger deaktivieren

Ein Thema von Hansa · begonnen am 10. Jan 2004 · letzter Beitrag vom 12. Jan 2004
 
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Generatorwerte setzen /Trigger deaktivieren

  Alt 11. Jan 2004, 17:11
Also mit Alter-Trigger wird das nichts werden, denke
ich. Das alte Änderungsspeicher-Problem mit IB/FB.
Nach einer Weile ist die Max-Anzahl von Änderungen erreicht
und du müsstest ein Backup-Restore durchführen.

Probier mal den Gedanken:

1. Generator für Boolean-Wert

SQL-Code:
CREATE GENERATOR GEN_TRIGGER_STATUS;
SET GENERATOR GEN_TRIGGER_STATUS TO 0;
2. Schreibe die Prozeduren:

SQL-Code:
CREATE PROCEDURE SET_GENERATOR_TO_MAX_ID
AS
DECLARE VARIABLE MAXID INTEGER;
BEGIN
SELECT MAX(ID) FROM your_table
INTO :MAXID;
SET GENERATOR GEN_DS_ID TO :MAXID;
END
SQL-Code:
Create Procedure SET_TRIGGER_STATUS ( STATUS:SMALLINT)
AS
BEGIN
 If (:Status) = 1 then Set Generator GEN_TRIGGER_STATUS TO 1
 If (:Status) = 0 then Set Generator GEN_TRIGGER_STATUS TO 0
END
3. Der Trigger sollte so aussehen

SQL-Code:
CREATE TRIGGER DS_BI0
ACTIVE BEFORE INSERT POSITION 0
AS
begin
 IF (GEN_ID(GEN_TRIGGER_STATUS,0)=1) THEN
 BEGIN
  IF (NEW.ID IS NULL) THEN
    EXECUTE PROCEDURE SET_GENERATOR_TO_MAX_ID;
    NEW.ID = GEN_ID (GEN_DS_ID,1);
 END
end
Durch GEN_ID(GEN_TRIGGER_STATUS,0) fragt der Trigger ab, welchen Stand der Generator hat.
Wenn er 1, also True ist, soll der Trigger ausgeführt werden.
In deinem Programm müsstest du nur noch die StoredProc in einem TIBStoredProc ausführen
und den Input-Parameter je nachdem ob der Trigger an oder aus sein soll 1 oder 0 übergeben.
  Mit Zitat antworten Zitat
 


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 06:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz