AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird INTEGER = NotNull

Ein Thema von strom · begonnen am 26. Jan 2015 · letzter Beitrag vom 26. Jan 2015
Antwort Antwort
Seite 3 von 4     123 4      
Hansa

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

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 16:13
Ich glaube du weisst weder, was ein Trigger ist, noch was eine Datenbank ist. Und "ist vorgegeben" ist lediglich vorgeschoben.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#22

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 16:18
An administrativen Tools fallen mir spontan IBExpert (Personal) und FlameRobin ein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#23

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 16:22
Danke DeddyH
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#24

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 17:02
Ich glaube du weisst weder, was ein Trigger ist, noch was eine Datenbank ist. Und "ist vorgegeben" ist lediglich vorgeschoben.
Auch wenn hansa nicht sehr freundlich war, recht scheint er zu haben.
Also nochmals zurück auf Los.
Was hast Du wohin willst Du und welche Fragen tauchen dabei auf. Das herumdoktern an Symptomen hilft da nicht wirklich weiter!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Hansa

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

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 17:09
Stimmt, kommt wirklich nicht so freundlich rüber. Ein Land der Weicheier und Dilletanten nützt allerdings selbst letztgenannten nichts.
Gruß
Hansa
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#26

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 17:32
Natürlich habe ich keine Ahnung von Datenbanken in Delphi usw.
sonst wäre ich nicht in diesem Forum oder?

Dank "DeddyH" konnte ich mir mal einen Trigger anschauen. (FlameRobin)

Soll dieser Trigger jetzt von Delphi angesteuert werden?
Oder übernehme ich diesen Quelltext?

Code:
SET TERM ^ ;
ALTER TRIGGER EINSAETZE_BI ACTIVE
BEFORE INSERT POSITION 0
AS
    DECLARE iEinsatznummer INTEGER;
    DECLARE iRecordCount INTEGER;
    DECLARE iEinsatznummerStart INTEGER;
    DECLARE iEinsatznummerMax INTEGER;
BEGIN
    iRecordCount = 0;
    iEinsatznummerStart = extract(year from current_date) * 1000000;
    iEinsatznummerMax = 0;

    SELECT COUNT(*), max(EINSATZNUMMER) FROM EINSAETZE WHERE (EINSATZNUMMER >= :iEinsatznummerStart) INTO :iRecordCount, :iEinsatznummerMax;

    IF (iRecordCount >= 1) THEN iEinsatznummer = iEinsatznummerMax; ELSE iEinsatznummer = iEinsatznummerStart;
    iEinsatznummer = iEinsatznummer + 1;

    IF (NEW.EINSATZNUMMER IS NULL) THEN NEW.EINSATZNUMMER = iEinsatznummer;

END^
SET TERM ; ^

Geändert von strom (26. Jan 2015 um 17:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#27

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 17:39
Dieser Trigger macht doch schon das, was Du erreichen möchtest, von daher wäre es kontraproduktiv, die Einsatznummer "von außen" zu belegen. Wenn da nun unbedingt eine Eingabe erforderlich ist, kannst Du es ja mal mit NULL bzw. einem Clear-Aufruf versuchen, obwohl ich da auch nicht viel Hoffnung habe.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Hansa

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

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 17:41
Öffentliche Diskussion beginnen und dann hinter den Kulissen irgendwas machen, was soll das ? Zusammenhang ist dadurch ziemlich durcheinander.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 17:56
Ja

IBexpert Personal Edition
Database Workbench free Edition
FlameRobin

Aber PK sollte man so nie setzen.
Markus Kinzler
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#30

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 19:49
Code:
ALTER TRIGGER EINSAETZE_BI ACTIVE
BEFORE INSERT POSITION 0
...
    IF (NEW.EINSATZNUMMER IS NULL) THEN NEW.EINSATZNUMMER = iEinsatznummer;
...
Deshalb (und weil Du bei Dir die 'Einsatznummer' selber setzt, funktioniert das nicht.

Allerdings sollte der Ersteller des Triggers geteert und gefedert werden. Eine Grundregel der Datenbankprogrammierung lautet: Kodiere niemals(!) das primäre Schlüsselfeld. Niemals! Du kannst eine fortlaufende Nummer vergeben, oder -auch das ist legitim- einen eindeutigen Code, aber ein Primärschlüssel soll nie 'sprechend' sein.

Man kann zusätzlich zum Primärschlüsselfeld noch ein weiteres Feld angeben (mit unique-constraint), das dann mit derartigem Kram gefüllt ist. Aber das ist dann eben irgend eine 'Bezeichnung' des Datensatzes.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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