![]() |
AW: Firebird Embedded + AUTOINC
MS SQL Server hat übrigens auch AutoInc-Felder, obwohl ich den jetzt nicht unbedingt in einer Linie mit Paradox oder Access aufstellen möchte.
Der Vorteil bei MSSQL gegenüber Firebird/Interbase ist aber, daß FireDAC dort den gerade erzeugten AutoInc-Wert auslesen und an die Anwendung zurückgeben kann. Bei Firebird/Interbase funktioniert das leider nicht und man muss dort andere Maßnahmen ergreifen. Im Endeffekt läuft es sogar darauf hinaus, daß FireDAC zwar auch den Generator benutzt, diesen Wert aber beim Insert übergibt und damit den Trigger außer Kraft setzt. So ganz ohne Trigger geht es aber auch nicht, wenn auch aus anderen Quellen Daten hinzugefügt werden sollen. Ein simples AutoInc-Feld in MSSQL (dort heißt es übrigens Identity) hat kürzlich bei einem Port auf Interbase schon einen gewissen Aufwand verursacht und (das in fast jeder Tabelle). Damit ging dann auch die eigentlich einfache Umschaltung des Zieldatenbanksystems in Rauch auf bzw. wurde deutlich komplexer als veranschlagt. Das kann ich mir auch etwas developer friendly vorstellen. Ach ja, MSSQL gibt es mittlerweile auch kostenfrei als Embedded System. |
AW: Firebird Embedded + AUTOINC
Microsoft, Microsoft über alles und nur hirnies verwenden OS!
Nur weil FireDAC mit dem Mechanismus von interbase/firebird nicht zurecht kommt, soll nun jeder MSSQL nehmen? FB kennt übrigens RETURNING, mit Hilfe man sich den Wert zurückgeben lassen kann. Der explizite autoinc per Direktive kommt übrigens bald bei FireBird. |
AW: Firebird Embedded + AUTOINC
Zitat:
Zitat:
Aber wieso werden immer Autoincfelder verwendet? Wir verwenden hier lieber GUIDs um diverse Nachteile von AutoInc-Felder zu umgehen. Und diese Zahlenwerte sind auch nicht lesbarer als die GUIDs |
AW: Firebird Embedded + AUTOINC
Zitat:
Zitat:
Abgesehen davon liegt die Wahl der Datenbank ja auch nicht immer in der Hand des Entwicklers. Zitat:
|
AW: Firebird Embedded + AUTOINC
Zitat:
Ich fürchte, da hast Du tatsächlich etwas in den falschen Hals bekommen. Aktuell tauschen wir uns doch lediglich über die Herangehensweisen diverser Systeme aus. Am Rande: Gerade FireDAC kommt mit dem Systems bestens zurecht, ich kann in der Komponente einstellen, wann ich den Wert aus dem Trigger generieren lassen möchte - wahlweise wenn ich clientseitig ein neues Record anlege oder erst später beim Post. Je nach Bedarf sind mir in der freien Wildbahn schon beide Varianten vor die Flinte gelaufen. |
AW: Firebird Embedded + AUTOINC
Zitat:
Zitat:
Zitat:
Ideal wäre es, wenn in FB z.B. noch ein Attribut (oder ein Datentyp) 'AUTOINC' hinzukommt. Dann wäre Ruhe. Natürlich würden viele schreien 'Das braucht man nicht, das macht mit mit nem Generator und nem Trigger', aber For-Schleifen braucht man auch nicht, und es gibt sie trotzdem. Denn sie sind praktisch. Zitat:
BTW: Zum Thema Lesbarkeit von GUID: "Ey, Bernhard, welcher Record hat nochmal das Problem? Ich wollte kurz mal da rein schauen" A: "ID 12 45 678" B: "C87FC... ach, ich schicks Dir per Skype" |
AW: Firebird Embedded + AUTOINC
Zitat:
Code:
LG
create table t2 (
t2_id bigint generated by default as identity , i integer , constraint pk_t2 primary key (t2_id) ); |
AW: Firebird Embedded + AUTOINC
Zitat:
Irgendwie ignoriert das Ding sogar ein Order-By und macht einfach nicht. Weder sortieren, noch eine Fehlermeldung. Ist doch nur ein billiges VARCHAR-Feld und mit INTEGER ging es auch nicht. :wall: Und am schrottigen Delphi-DBGrid kann es nicht liegen, da dieses weder Sortierung noch Filterung kennt. (ist auch wirklich im Query so unsortiert) Da will man mal privat bissl rumspielen und dann funktioniert einfach nichts.
Hatte mit MySQL-Embedded angefangen, dann fielen mir wieder die Diskussionen vonwegen Lizenzen an und ich probierte mal das "coole" Firebird aus, was doch immer wieder gelobt wird. Aber vielleicht liegt es ja auch am FireDAC, aber mit PgDAC hatte eigentlich nicht solche Probleme (nur hab ich diese DB hier nicht und das war auch noch nicht von Emba) |
AW: Firebird Embedded + AUTOINC
Lass mal die ganze Delphi-Seite vorerst weg. Lege in IBExpert Tabelle an, einen Generator und einen BI-Trigger für die ID. Dann füge ein paar Datensätze ein und guck, ob die ID korrekt hochgezählt wird (also automatisch, nicht von Hand !!)
|
AW: Firebird Embedded + AUTOINC
@Himi:
Wie sortierst Du denn? FireBird kann das ganz hervorragend, sowohl bei Zahlen als auch bei Strings - auch unter Berücksichtigung von Ländercodes. Gleiches gilt für FireDAC. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr. |
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