Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird Embedded + AUTOINC (https://www.delphipraxis.net/183534-firebird-embedded-autoinc.html)

himitsu 17. Jan 2015 22:23

Datenbank: Firebird • Version: 2.5.3 • Zugriff über: FireDAC

Firebird Embedded + AUTOINC
 
Moin moin,

gibt es in Firebird wirklich keine AUTOINC-Felder.


Hab's jetzt erstmal nach dieser Anleitung hinbekommen.
http://www.firebirdfaq.org/faq29/

Aber ich finde es dennoch recht umständlich.

Uwe Raabe 17. Jan 2015 22:33

AW: Firebird Embedded + AUTOINC
 
Zitat:

Zitat von himitsu (Beitrag 1286866)
gibt es in Firebird wirklich keine AUTOINC-Felder.

Ist so!

Perlsau 17. Jan 2015 23:21

AW: Firebird Embedded + AUTOINC
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von himitsu (Beitrag 1286866)
Aber ich finde es dennoch recht umständlich.

Ist nur scheinbar umständlich. Wenn du den IbExpert* einsetzt, kannst du beim Erstellen einer Tabelle selbstverständlich auf einfachste Weise ein AutoInc-Feld anlegen, wie man in der Grafik unten deutlich sehen kann. Dazu mußt du nur die CheckBox mit dem Titel AI ankreuzen, und es erscheint der Dialog für das Autoinkrementfeld. Dort wählst du Procedure, Generator und Trigger automatisch erzeugen, und fertig. In anderen DBMS ist das im Grunde nicht viel anders geregelt, nur wird dir dort vielleicht verborgen, was im Einzelnen genau vonstatten geht, wenn du einen neuen Record anlegst, dessen PK ein AutoInc-Feld ist. Auch in Access wird intern ein Trigger ausgelöst, der eine vorbereitete Procedure ausführt, die den Generator für eine neue PK-Id anwirft. Ich empfinde das bei Firebird als sehr übersichtlich und leicht verständlich und den Einsatz von IbExpert dabei als äußerst hilfreich.

* Für die Personalversion mußt du dich dort registrieren, kostet aber nichts. Und jeden Monat einmal wird deine Registrierung beim Start von IbExpert abgefragt, du mußt dann deine Registrierungsnummer eingeben.

mkinzler 18. Jan 2015 08:57

AW: Firebird Embedded + AUTOINC
 
Vorteil ist aber, dass Du den Vorgang steuern kannst. Z.B. andere Schrittweite oder gemiensamen Generator für mehrere Tabellen usw.

p80286 18. Jan 2015 09:05

AW: Firebird Embedded + AUTOINC
 
Zitat:

Zitat von himitsu (Beitrag 1286866)
Aber ich finde es dennoch recht umständlich.

Kann ich verstehen, vor allem wenn man es von anderen SQL-Dialekten anders gewohnt ist .
Aber da weiß man woher es kommt, und die Werte fallen nicht vom Himmel oder müßen von einem, von zig Generatoren abgeholt werden.

Gruß
K-H

Dejan Vu 18. Jan 2015 09:12

AW: Firebird Embedded + AUTOINC
 
Zitat:

Zitat von mkinzler (Beitrag 1286881)
Vorteil ist aber, dass Du den Vorgang steuern kannst. Z.B. andere Schrittweite oder gemiensamen Generator für mehrere Tabellen usw.

Dies widerspricht aber der Maxime, seine Surrogatschlüssel nichtsprechend zu halten. Insofern ist das nicht unbedingt ein Vorteil.
Zitat:

Zitat von Perlsau (Beitrag 1286870)
...Wenn du den IbExpert* einsetzt, kannst du beim Erstellen einer Tabelle selbstverständlich auf einfachste Weise ein AutoInc-Feld anlegen...

Soweit ich mich erinnere ist die Pflege der Eigenschaft nicht mehr so einfach.

Generatoren sind allgemeingültiger, und vielleicht dachte jemand, das sei schlau.

Unpraktisch ist es in jedem Fall. Nur weil IBEXPERT das auch so sieht und deshalb so tut, als ob es eine AutoInc-Eigenschaft eines Datentypen gibt, heißt das ja nicht, das diese Generatorenvertriggerung sinnvoll ist, eher das Gegenteil.

Aber letztendlich ist es ein Feature, mit dem man leben kann.

mkinzler 18. Jan 2015 09:25

AW: Firebird Embedded + AUTOINC
 
Zitat:

Dies widerspricht aber der Maxime, seine Surrogatschlüssel nichtsprechend zu halten. Insofern ist das nicht unbedingt ein Vorteil.
Und mit anderer Schrittweite ist er nun abhängig von den Werten der Tabelle? Oder wird verhindert das Wete in der Tabelle nicht mehr geändert werden könnenn, wenn jemand möchte, dass der PK über mehrere Tabellen eindeutig ist?
Zitat:

Generatoren sind allgemeingültiger, und vielleicht dachte jemand, das sei schlau.
Generatoren oder Sequenzen gibt es auch in anderen DBMS und sind idZw. auch Teil des SQL-Standards.

Dann nimm halt ein "intelligentes" Datenbanksystem mit autoinc wie zB. Paradox oder access und mach einen großen Bogen um die "unpraktischen" Frickelsystem wie FireBird, Oracle und Co.

p80286 18. Jan 2015 09:37

AW: Firebird Embedded + AUTOINC
 
Zitat:

Zitat von mkinzler (Beitrag 1286889)
Dann nimm halt ein "intelligentes" Datenbanksystem mit autoinc wie zB. Paradox oder access und mach einen großen Bogen um die "unpraktischen" Frickelsystem wie FireBird, Oracle und Co.

Frickelsysteme ist Guuut.

Aber im Ernst, wenn man die DB als bessere Datenhalde nutzt, mehr braucht man manchmal nicht, dann ist man mit "intelligenten" Systemen ganz gut bedient.

Gruß
K-H

mkinzler 18. Jan 2015 09:48

AW: Firebird Embedded + AUTOINC
 
Ich würde auch dann keines der von mir genannten Systeme verwenden. Aber das ist meine persönliche Meinung.

Perlsau 18. Jan 2015 10:52

AW: Firebird Embedded + AUTOINC
 
Eben :thumb: Weshalb sollte man alte, unmoderne und unflexible Software einsetzen, wenn man ebenso auch neue, moderne und flexible Software haben kann? Wie so oft kann ich mich des Eindrucks nicht erwehren, daß auch in diesem Bereich mehr aus Gewohnheit für das Alte plädiert wird denn aus sachlicher Überzeugung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.
Seite 1 von 6  1 23     Letzte »    

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