Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Paradox Zähler (https://www.delphipraxis.net/120503-paradox-zaehler.html)

ecHo89 11. Sep 2008 17:40

Datenbank: Paradox 7 • Version: 7 • Zugriff über: Delphi 7, SQL

Paradox Zähler
 
Hallo,

ich habe eine Datenbank und einen primär Schlüssel (Zähler +).
Wenn ich den letzten Datensatz lösche (Nr. 4) und einen neuen erstelle wird das Nr. 5, aber ich will das es Nr. 4 wird.
Genauso möchte ich, dass ich variable Datensätze rauslöschen kann und anstelle derer neue einschieben kann, z.B. wenn ein Datensatz unbrauchbar geworden ist - Gegenstand defekt -> aussortiert).

Gibt es nur die Möglichkeit die Zähler auf Integer umzustellen und dann per Code diese selber zu generieren und so vollen Zugriff auf meinen Primärschlüssel zu haben.
Oder gibt es eine andere, sinnvollere?

Grüße, Malte

Danke schonmal!

rollstuhlfahrer 11. Sep 2008 17:58

Re: Paradox Zähler
 
HI,

ich würd mal sagen, dass es da keine andere Möglichkeit gibt, als alles von Hand zu machen. Eine Datenbank labt davon, dass der Primärschlüssel nur 1mal existiert. Genau deswegen hat man, um den Aufwand zu verringern den Zähler erfunden. Dieser zählt einfach fortlaufend und schert sich nicht um die Tabelle selbst. Wenn du jetzt einen Datensatz aus der Mitte löschst heißt dass für dein Spielchen, dass du alle Werte unterhalb von dem gelöschten Wert um 1 verringern musst. Der Aufwand wird dann bei größeren Datenmengen riesig und unüberschaubar.
Was willst du denn damit erreichen?

Bernhard

mkinzler 11. Sep 2008 18:02

Re: Paradox Zähler
 
Abgesehen, dass dies nicht sinnvoll ist, bleibt dir nichts anderes übrig, als die Nummer manuell zu vergeben. Ich würde diese Nummer als weiteres Feld anlegen und am PK nichts ändern

ecHo89 11. Sep 2008 18:08

Re: Paradox Zähler
 
Es geht um eine DVD-Bibliothek.
D.h. wenn eine DVD defekt oder verloren gegangen ist möchte ich an die Stelle eine andere DVD stellen, da es doof aussieht im Regel wenn überall Lücken sind ;-)

Nein, ich möchte die anderen nicht nachrücken, sondern lediglich andere Datensätze an die Stelle der gelöschten einsetzen.

Vllt. wärs am besten, wenn ich die Löschen-Funktion ersetze mit einer UPDATE-Funktion, d.h. man kann nur Filme rausschmeißen, wenn man einen neuen Film hat den man für den Alten einsetzt.

Was meint ihr dazu?

Jelly 11. Sep 2008 18:18

Re: Paradox Zähler
 
Wie du es schilderst, steckst du eine Information in den Primärschlüssel rein. Sowas macht keinen Sinn und bringt einem im Laufe der Zeit nur Probleme mit, wenn plötzlich Referenzen vergessen wurden mit anzupassen.

Hör auf mkinzler... Fass den PK nicht an und verwalte in einer gesonderten Spalte deine fortlaufenden Nummern.

DeddyH 11. Sep 2008 18:18

Re: Paradox Zähler
 
Halte ich für suboptimal. Wie Markus schon andeutete, erstelle Dir doch einfach ein weiteres Feld für die laufende Nummer, die Du selbst verwaltest, das dürfte der beste Weg sein.

[edit] Jelly war schneller *g* [/edit]

ecHo89 11. Sep 2008 18:31

Re: Paradox Zähler
 
okay, danke an alle dann werde ich das so machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.

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