AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ID bei neuem Datensatz automatisch hochzählen
Thema durchsuchen
Ansicht
Themen-Optionen

ID bei neuem Datensatz automatisch hochzählen

Ein Thema von Luca Haas · begonnen am 3. Nov 2017 · letzter Beitrag vom 6. Nov 2017
 
bnreimer42

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
132 Beiträge
 
Delphi 13 Florence
 
#15

AW: ID bei neuem Datensatz automatisch hochzählen

  Alt 4. Nov 2017, 09:21
Ich bin immer wieder verwundert, wie viele Gedanken man sich über die IDs machen kann.

Selbstverständlich sind die IDs reine technische Schlüssel und dürfen keine Semantik haben! Sonst ist das DB-Design "defekt".

Insbesondere darf man die IDs nie als Rechnungsnummer oder Aktenzeichen oder soetwas ähnliches benutzen. Dazu muss man eine eigenes Feld verwenden!

Daraus ergibt sich, dass IDs immer über AutoInc-Mechanismen (Oder bei Firebird Trigger mit gen_id()-Aufruf) erstellt werden sollten.

Ich mache mir auch keine Gedanken mehr, ob eine Tabelle ein ID-Feld benötigt: Es schadet nicht, wenn jede Tabelle eines hat und es hilft in jedem Fall, wenn man exakt einen Datensatz ansprechen will, z.b. beim Bearbeiten.


Einzig valide Frage ist, wie kommt man - um z.B. eine Fremdschlüsselbeziehung zu einem neuen Datensatz anzulegen, an den letzten ID-Wert und das geht prinzipiell immer erst, wenn der Datensatz in der DB gespeichert ist.

Bei u.a. Firebird gibt es dazu das wunderbare RETURNING-Konstrukt um bei einem Insert gleich Werte (z.B. die des ID-Feldes) zurückzubekommen.

Für FireDAC gibt es die schöne Doku-Seite http://docwiki.embarcadero.com/RADSt...lder_(FireDAC), die dazu alles zusammenfasst.
Björn Reimer
  Mit Zitat antworten Zitat
 


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