AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird und Autoincrement
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird und Autoincrement

Ein Thema von buyden · begonnen am 14. Mär 2005 · letzter Beitrag vom 14. Mär 2005
Antwort Antwort
Benutzerbild von buyden
buyden

Registriert seit: 10. Apr 2003
Ort: Schneeberg
228 Beiträge
 
Delphi 7 Enterprise
 
#1

Firebird und Autoincrement

  Alt 14. Mär 2005, 13:58
Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos
Hi

ich versuch schon seit ner ganzen weile meine Firebird Datenbank dazu zu bekommen, meinem ID-Feld automatisch nen Wert zuzuweisen. Ich hab also unter dem ID-Feld nen Generator erzeugt, den mir Firebird anbietet aber trotzdem bekommt der Primärschlüssel beim Post keinen Wert zugewiesen, was natürlich zu einem Fehler führt.
Also wie weist man einem Feld unter Firebird einen Autoincrement-Wert zu??

Ich arbeite mit IBExpress und IBOConsole.
Es gibt keine dummen Fragen, außer die von mir


MFG BUYDEN
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Firebird und Autoincrement

  Alt 14. Mär 2005, 14:07
Hihi, ein Gegnerator ist doch nur ein Objekt, bei dem du dir immer einen Wert abholen kannst.
Dabei wird der Zähler um eins erhöht.
Damit das ganze, trotz not null constraint, funktioniert brauchst du einen "before insert" trigger.
Bleistift:
SQL-Code:
create trigger DeinTriggerName
   for DeineTabelle active
   before INSERT position 0 as
begin
   if (New.DeinPk is null) then
      New.DeinPk = gen_id(DeinGenerator, 1);
end;
  Mit Zitat antworten Zitat
Benutzerbild von buyden
buyden

Registriert seit: 10. Apr 2003
Ort: Schneeberg
228 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Firebird und Autoincrement

  Alt 14. Mär 2005, 15:51
genau das hab ich auch schon probiert aber trotzdem bekomme ich den Fehler, wenn ich bei IBExpert keine ID für den neuen Datensatz manuell eintrage und speichere

Den folgenden code hat IBExpert selbst generiert:
Delphi-Quellcode:
SET SQL DIALECT 3;

SET NAMES NONE;

CREATE GENERATOR GEN_AUFTRAG_ID;

SET TERM ^ ;




CREATE TRIGGER AUFTRAG_BI FOR AUFTRAG
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.AWERT IS NULL) THEN
    NEW.AWERT = GEN_ID(GEN_AUFTRAG_ID,1);
END
^


SET TERM ; ^
Trotzdem passiert nix.
Es gibt keine dummen Fragen, außer die von mir


MFG BUYDEN
  Mit Zitat antworten Zitat
Benutzerbild von buyden
buyden

Registriert seit: 10. Apr 2003
Ort: Schneeberg
228 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Firebird und Autoincrement

  Alt 14. Mär 2005, 16:01
ich hab das Ganze jetzt nochmal in meinem Programm probiert, ich habe nen neuen Datensatz angelegt und gepostet, ohne Fehlermeldung, allerdings ist das Feld Awert auch leer
...strange

Im IBExpert sind die Datensätze dann durchnummeriert - wie gesagt
...strange
Es gibt keine dummen Fragen, außer die von mir


MFG BUYDEN
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: Firebird und Autoincrement

  Alt 14. Mär 2005, 16:09
Ja, das ist klar, da der Wert in der Datenbank generiert wird, ist er bei dir nicht vorhanden.
Also musst du für ein Refresh des Satzes bzw. ID-Felds nach dem Post sorgen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von buyden
buyden

Registriert seit: 10. Apr 2003
Ort: Schneeberg
228 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Firebird und Autoincrement

  Alt 14. Mär 2005, 16:11
Ah comprende

thx
Es gibt keine dummen Fragen, außer die von mir


MFG BUYDEN
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:39 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