AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

firebird Trigger

Ein Thema von khh · begonnen am 4. Dez 2008 · letzter Beitrag vom 5. Dez 2008
Antwort Antwort
Seite 1 von 3  1 23   
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.505 Beiträge
 
FreePascal / Lazarus
 
#1

firebird Trigger

  Alt 4. Dez 2008, 15:20
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
hallo zusammen,

ich weiss zwar nicht ob ich hier offtoppic bin, abert ich denke das gehört zu den DB.
Nachdem ich nun mein RDBMS zu firebird gewechselt habe,
vermisse ich die autoincrement Felder.
Bei meiner Suche bin ich auf den Tipp gestossen einen Trigger zu verwenden.
Leider kenne ich mich damit gar nicht aus, und die angegebene Syntax bringt bei der Verwendung mit IBexpert einen error
Delphi-Quellcode:
 ACTIVE BEFORE INSERT POSITION 0
 AS
 BEGIN
   IF (NEW.ID IS NULL) THEN
     NEW.ID = GEN_ID(GEN_TBL_TEST_ID,1);
wie geht das richtig?

Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Hansa

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

Re: firebird Trigger

  Alt 4. Dez 2008, 15:22
Ist : GEN_TBL_TEST_ID grün unterstrichen ? Ansonsten fehlt das.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
32.967 Beiträge
 
Delphi XE2 Professional
 
#3

Re: firebird Trigger

  Alt 4. Dez 2008, 15:28
Wenn du den Trigger im IBExpert anlegen lässt, kannst du auch festlegen das der Generator automatisch erzeugt wird.
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

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

Re: firebird Trigger

  Alt 4. Dez 2008, 15:40
Wo kann man das festlegen ? Unter dem Aspekt, dass man besser nur einen einzigen DB-weiten Generator anlegen sollte und nicht mehrere davon, womöglich für jede Tabelle einen, würde das auch keinerlei Sinn machen.
Gruß
Hansa
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.505 Beiträge
 
FreePascal / Lazarus
 
#5

Re: firebird Trigger

  Alt 4. Dez 2008, 15:42
Zitat von mkinzler:
Wenn du den Trigger im IBExpert anlegen lässt, kannst du auch festlegen das der Generator automatisch erzeugt wird.

funktioniert jetzt, wenn ich den Generator manuell anlege.
Wo kann das definiert werden dass er automatisch erzeugt wird?


Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
32.967 Beiträge
 
Delphi XE2 Professional
 
#6

Re: firebird Trigger

  Alt 4. Dez 2008, 15:46
Also ich lege immer pro Tabelle (für den PK) einen an. Was aus meiner Sicht auch sinn macht!
Miniaturansicht angehängter Grafiken
ibexpert_autoinc_2_518.png   ibexpert_autoinc_1_596.png  
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
20.255 Beiträge
 
Delphi XE Professional
 
#7

Re: firebird Trigger

  Alt 4. Dez 2008, 15:47
IIRC gleich auf dem ersten Reiter die beiden Checkboxen "Erzeuge Generator" und "Erzeuge Trigger" anhaken.

OK, sind doch 2 verschiedene Reiter. Übrigens lösche ich die If-Abfrage im Trigger immer raus, damit der Wert nicht von außen gesetzt werden kann. Dazu gab es vor langer Zeit mal einen Thread hier.
Detlef
Wenn Dein Programm nicht macht, was es soll, nenn es einfach "Version 1.0"

Delphi programming is cool
  Mit Zitat antworten Zitat
Hansa

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

Re: firebird Trigger

  Alt 4. Dez 2008, 15:59
Beim Anlegen neuer Tabellenfelder ist rechts eine Checkbox Autoinc. Wird die gecheckt, dann kann man für dieses Feld einen Generator anlegen oder existierenden benutzen.

Zitat von mkinzler:
Also ich lege immer pro Tabelle (für den PK) einen an.
Macht man wohl zuerst intuitiv so. Danach aus Angewohnheit, oder um Zahlen zu "sparen". Kennt man sich einigermaßen aus, dann sollte man sich das aber besser wieder abgewöhnen. Im Normalfall dürfte es keine Auswirkungen haben, aber für Profis in der Praxis irgendwann mächtig Ärger bedeuten.
Gruß
Hansa
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.505 Beiträge
 
FreePascal / Lazarus
 
#9

Re: firebird Trigger

  Alt 4. Dez 2008, 16:00
Zitat von DeddyH:
IIRC gleich auf dem ersten Reiter die beiden Checkboxen "Erzeuge Generator" und "Erzeuge Trigger" anhaken.

OK, sind doch 2 verschiedene Reiter. Übrigens lösche ich die If-Abfrage im Trigger immer raus, damit der Wert nicht von außen gesetzt werden kann. Dazu gab es vor langer Zeit mal einen Thread hier.

ich danke euch


Gruss Kh
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
283 Beiträge
 
Delphi XE Enterprise
 
#10

Re: firebird Trigger

  Alt 4. Dez 2008, 16:49
Zitat von Hansa:

Zitat von mkinzler:
Also ich lege immer pro Tabelle (für den PK) einen an.
Macht man wohl zuerst intuitiv so. Danach aus Angewohnheit, oder um Zahlen zu "sparen". Kennt man sich einigermaßen aus, dann sollte man sich das aber besser wieder abgewöhnen. Im Normalfall dürfte es keine Auswirkungen haben, aber für Profis in der Praxis irgendwann mächtig Ärger bedeuten.
@Hansa: Verrätst du uns auch, warum?
Gruß, Jan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2012 by Daniel R. Wolf