Autor Beitrag
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 14.02.03 09:03 
guden
ich wollt ma fragen, ob mir das einer ma erklären kann was Trigger sind, was sie bezwecken etc.
ein link wäre auch nicht schlecht .... das wurde mal erwähnt in einem IB tut das ich durchgearbeitet habe, aber nich intensiv genug .... :wink2:

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
FaTaLGuiLLoTiNe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 5

Windows 7, Windows 8.1
Delphi XE
BeitragVerfasst: Fr 14.02.03 10:05 
Zitat:

Ein Trigger ist eine besondere Art Stored Procedure, die aktiviert wird, wenn Sie Daten in einer angegebenen Tabelle einfügen, löschen oder aktualisieren. Trigger können Ihnen dabei helfen, die referentielle Integrität Ihrer Datenbank zu bewahren, indem sie die Konsistenz logisch miteinander verbundener Daten verschiedener Tabellen erzwingen. Referentielle Integrität bedeutet, daß die Primärschlüsselwerte den entsprechenden Fremdschlüsselwerten genau entsprechen müssen.

Der bedeutendste Vorteil von Triggern liegt darin, daß sie automatisch ausgelöst werden. Dies erfolgt unabhängig davon, ob die Daten auf Grund der Eingabe eines Mitarbeiters oder von einer Anwendung geändert werden. Ein Trigger überwacht grundsätzlich eine oder mehrere Operationen, bei denen Daten geändert werden: update , insert , delete . Er wird jeweils einmal in jeder SQL-Anweisung ausgeführt.

Die Ausführung des Triggers erfolgt unmittelbar nach der entsprechenden Datenänderung.


(Aus einem Onlinetutorial über Sybase)

Hier mal 'n Link den ich gefunden hab', ich suche aber weiter :

www.interbase2000.de...multipleTriggers.htm
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 14.02.03 10:29 
danke :)

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 14.02.03 10:33 
Moment, jetzt mal langsam. Auf diese Frage habe ich gewartet. Um die Dinger wirst Du nämlich nur schwerlich herumkommen. Eine Definition hast Du ja nun, aber die ist mir zu trocken. Das klassische Beispiel für einen Trigger ist der Ersatz der in IB nicht vorhandenen AutoInc - Funktion. Die ID eines Datensatzes sollte ja wohl am besten automatisch beim neu anlegen hochgezählt werden. So mache ich das jedenfalls :

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
CREATE TRIGGER ART8_BI0 FOR ART8
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID (GEN_ART8_ID,1);
end


Immer dann, wenn ein neuer Datensatz eingefügt wird, wird der Trigger aktiv. Hierfür ist das ACTIVE BEFORE INSERT zuständig. Genauso gut könnte man da eine Select-Anweisung oder was anderes reinschreiben. In dem Beispiel wird halt der Generator benutzt.

_________________
Gruß
Hansa
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 14.02.03 10:38 
danke hansa

aber erklär mir ma bitten den code
ausblenden Quelltext
1:
2:
3:
4:
begin 
  IF (NEW.ID IS NULL) THEN 
    NEW.ID = GEN_ID (GEN_ART8_ID,1); 
end


was ist new.id , gen_id ,gen_art8_id ??? muss ich ja wissen, das ich meine namen einsetzte. also mein generator heisst fimen_gen mein tigger --> firmen_tig

wo muss ich das nu einsetzten? aso und meine tabelle heist firmen :D

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 14.02.03 10:57 
foxy hat folgendes geschrieben:
aber erklär mir ma bitten den code


Wie, ich denke, Du hast das sowieso schon verstanden ? :shock: Fast hätte ich das gar nicht mehr gepostet. :lol:

GEN_ART8_ID --> fimen_gen
ART8_BIO --> firmen_tig
NEW.ID bleibt, es sei denn die ID heißt anders und FOR ART8 heißt bei Dir FOR firmen

Ah, noch was : Ich komme da mit der Nomenklatur auch immer wieder durcheinander. Deshalb mache ich das mit IBexpert, hab Dir den schon mal empfohlen. Dort sage ich einfach, welche Table und welche Aktion ausgeführt werden soll (BEFORE INSERT, AFTER UPDATE usw.) und schon baut der mir das Ding richtig zusammen.

_________________
Gruß
Hansa
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 14.02.03 11:09 
joa ich werde mir ma den IBExp. ma ankucken :)

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)