Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Datensatznummer in einer SQL Anweisung ausgeben?

  Alt 3. Nov 2005, 07:06
Es gibt bei SQL per se keine Datensatznummern, da SQL eine mengenbasierte Datenbankabfragesprache darstellt. Im Gegensatz zu einer ISAM (DBase, Access etc.), die die Daten als Tabellen mit Datensatznummer auffässt, sieht SQL eine 'Tabelle' als Menge von Datensätzen ohne innere Ordnung an. Die SQL-Konstrukte JOIN (Schnittmenge) und UNION (Vereinigung) spiegeln dieses Konzept wieder.

Die DB-Server verhalten sich ähnlich. In einzelnen Implementierungen (IB, Firebird z.B.) kann man zwar auf eine Datensatznummer zugreifen, aber das ist eine Krücke und, ich wiederhole mich, eigentlich nicht SQL-konform.

Du musst Dir deine Datensatznummer selbst basteln, indem Du eine zusätzliche Spalte einführst, die mit einem eindeutigen Wert (z.B. mit Hilfe eines Zählers) gefüllt ist. Bei MS-SQL ist das eine 'IDENTIY'-Spalte, FB und IB verwenden hierfür i.A. einen Generator.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat