Delphi-PRAXiS
Seite 1 von 3  1 23      

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 30. Sep 2010 21:52

Datenbank: Firenird • Version: 2.1 • Zugriff über: UniDac

Firebird und AutoInc
 
Hallo,

ich verwende in meiner Anwendung ein AutoInc Feld, welches über einen Firebird Trigger gefüllt wird. Jetzt habe ich das Problem, dass beim Dataset.Insert das AutoInc ID DBEdit Feld nicht leer sein darf (klar, wg. PK). Ich brauche dieses ID Feld zum referenzieren weiterer Datensätze. Soll ich da einen weiteren Trigger und ein weiteres DB Feld anlegen und das als PK nutzen?

Viele Grüße ...

scrat1979 30. Sep 2010 21:56

AW: Firebird und AutoInc
 
Warum hast Du denn bei einem AutoInc-Feld ein DBEdit?? Das wird doch automatisch durch den Trigger "BeforeInsert" befüllt und ist somit "automatisch" nicht leer?!?!?! Bei mir funktioniert das nämlich ohne Probleme....

[Edit]
Ich befülle meine Tabelle allerdings durch ein SQL-Statement. Vielleicht zeigt FireBird hier auch ein anderes Verhalten...
[/edit]

Grolle 30. Sep 2010 21:58

AW: Firebird und AutoInc
 
Hi,

weil ich das erst (hidden) nutzen wollte, um darauf Zugriff zu haben. War nicht schlau, deshalb suche ich jetzt einen anderen Weg an die ID des Datensatzes zu kommen :roll:

Viele Grüße ....

// Edit: Eigentlich brauche ich das Ereignis, an dem ich den jeweils aktiven Datensatz (bzw. seine ID) im Dataset lesen kann

Chemiker 30. Sep 2010 22:14

AW: Firebird und AutoInc
 
Hallo Grolle,

wenn Du einen Trigger einsetzt, kannst Du doch die ID mit einem Generator erstellen.

Bis bald Chemiker

Grolle 30. Sep 2010 22:16

AW: Firebird und AutoInc
 
Hallo,

ich brauch die generierte ID aber dann auch im Programm. Der Trigger/Generator funktioniert ja.

Viele Grüße ...

TBx 30. Sep 2010 22:31

AW: Firebird und AutoInc
 
Zitat:

Zitat von Grolle (Beitrag 1053083)
Hallo,

ich brauch die generierte ID aber dann auch im Programm. Der Trigger/Generator funktioniert ja.

Viele Grüße ...

Ab FB 2.0 gibt es ganau dafür das RETURNING im INSERT-Statement.

Grolle 30. Sep 2010 22:41

AW: Firebird und AutoInc
 
Hi,

ich brauche die ID, wenn der Datensatzzeiger sich im Dataset(Query/Datasource) bewegt. In dem Moment, wenn die Edits auch die Daten bekommen. Die ReturningId ist ja der zuletzt eingefügte Datensatz.

Viele Grüße ...

TBx 30. Sep 2010 22:44

AW: Firebird und AutoInc
 
Welche Dataset-Komponenten setzt Du ein?

Grolle 30. Sep 2010 22:48

AW: Firebird und AutoInc
 
Hi,

Unidac - UniQuery.

Viele Grüße ....

DelphiBandit 1. Okt 2010 06:57

AW: Firebird und AutoInc
 
Hast Du eine statische Feldliste in der Query verwendet?

Wenn ja, setzt mal für das ID-Feld die Option Required auf false. Wenn Du sie nicht verwendet hast, erstelle diese mal und setze dann diese Option für das ID-Feld. Andere Möglichkeit, die wir ab und zu verwenden ist es den Generator in einer zweiten Query laufen zu lassen (SELECT GEN_ID( GEN_NAME,1 ) FROM RDB$DATABASE).


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 1 von 3  1 23      

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