Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird und AutoInc (https://www.delphipraxis.net/154928-firebird-und-autoinc.html)

Grolle 1. Okt 2010 13:50

AW: Firebird und AutoInc
 
Hallo,

bisher verwende ich keine statische Feldliste.

Zitat:

Zitat von Grolle (Beitrag 1053089)
ich brauche die ID, wenn der Datensatzzeiger sich im Dataset(Query/Datasource) bewegt.

gibt's denn da kein Event, an welchem ich die ID abgreifen kann?

Viele Grüße ...

haentschman 1. Okt 2010 15:30

AW: Firebird und AutoInc
 
AfterScroll :gruebel:

Chemiker 1. Okt 2010 18:35

AW: Firebird und AutoInc
 
Hallo Grolle,

Vielleicht hilft Dir dieser Link weiter: http://www.firebirdsql.org/pdfmanual...eneratoren.pdf

Bis bald Chemiker

Grolle 2. Okt 2010 14:24

AW: Firebird und AutoInc
 
Hi,

also, dass Problem liegt nicht an dem DBEdit sondern taucht beim speichern eines neuen Datensatzes auf.
Delphi-Quellcode:
    Query.Post;  
    Query.Refresh;
Beim Post kommt der Fehler, dass das Feld ID einen Wert haben muss (dieses ist aber gar nicht in der Insert Query). Leider ist das bei den anderen
getesteten Datenbanken (MySQL, SQLite) nicht so.

Weiß jemand rat?

Viele Grüße ...

DeddyH 2. Okt 2010 14:44

AW: Firebird und AutoInc
 
Wie sieht denn der Trigger aus?

Grolle 2. Okt 2010 14:49

AW: Firebird und AutoInc
 
Hi,
SQL-Code:
/* Trigger: CONTACTS_BI */
CREATE TRIGGER CONTACTS_BI FOR CONTACTS
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gen_contacts_id,1);
end
^
wurde von IBExpert generiert. Kann man nicht probieren das ganze als "After insert" zu nutzen?

Viele Grüße ...

DeddyH 2. Okt 2010 14:54

AW: Firebird und AutoInc
 
Da ich annehme, dass es sich um den PK handelt, wird das im AfterInsert wohl nicht gehen, da der Datensatz mit einem NULL-Wert in einem NOT NULL-Feld nicht angelegt wird. Übrigens würde ich die if-Abfrage innerhalb des Triggers löschen, da IMO ein Setzen des Wertes niemals von außen zu geschehen hat.

Grolle 2. Okt 2010 15:00

AW: Firebird und AutoInc
 
Hi,

habe es geändert. Sollte ich das Feld besser nicht als PK markieren und Null? (Hatte ich so auch schon getestet und läuft, aber ist nicht gerade optimal?!)

Viele Grüße ...

DeddyH 2. Okt 2010 15:20

AW: Firebird und AutoInc
 
Nein nein, der PK macht ja Sinn. Normalerweise sollte doch bei einem INSERT PK dieser dann automatisch befüllt werden.

Grolle 2. Okt 2010 15:33

AW: Firebird und AutoInc
 
Aber woher kommt dann der Fehler?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz