Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO + Access + AutoWert (https://www.delphipraxis.net/12625-ado-access-autowert.html)

markon 1. Dez 2003 10:47


ADO + Access + AutoWert
 
hallo.
habe mittels ado eine access-datenbank am laufen. alles funzt.

in einer tabelle hab ich ein feld "FP_ID", welches den felddatentyp "autowert" besitzt.
dies funktioniert auch. wird ein neuer datensatz hinzugefügt zählt der zähler 1 hoch.

aber folgendes problem tritt auf:
habe z.b. 5 datensätze, von 1 bis 5.
wenn ich jetzt den 3. datensatz lösche verschwindet dieser. is ja ok.
nur dann habe ich 1,2,4,5. es ist also eine art loch entstanden. da ich aber fortlaufende id's brauche ist das schlecht.
hinzu kommt noch, wenn ich einen neuen ds anlege, so wird dieser ans ende angelegt, im beispiel hier wäre es der 6. und der 3. wird nicht belegt.

neu nummerieren geht auch nicht, da meckert access das es ein autowert-feld ist.

:arrow: was soll ich nun machen? gibts ne lösung zur neu-nummerierung? oder muss ich autowert auf ein normalen integer-wert ändern?

thx 4 help

Leuselator 1. Dez 2003 11:06

Re: ADO + Access + AutoWert
 
Das Loch ist ein Feature, welches sehr nützlich ist. So kann man :

1. erkennen, das da mal was war
2. braucht man Bezüge in anderen Tabellen, die eindeutig auf einen Datensatz der betroffenen Tabelle verweisen, im Löschfall nicht sämtlichst upzudaten.

Wenn Du also eine fortlaufende Nummer brauchst, so entkoppel diese von der ID des jeweiligen Datensatzes. Sollte Dir das Probleme bereiten, so schilder mal was Du vor hast - wir finden dann eine Lösung...
Gruß

markon 1. Dez 2003 12:19

Re: ADO + Access + AutoWert
 
naja, autowert ist in meinem beispiel schon angebracht, wegen dem fortlaufenden nummerieren.
wenn ich einen ds lösche, dann soll aber keine leerstelle sein. d.h. es soll fortlaufend nummeriert sein. dies ist aber mit dem autowert von access nicht machbar :kotz: in meinem falle ist das loch als feature nicht geeignet.
werde vom autowert auf einem normalen integer-wert als felddatentyp umsteigen müssen..

Leuselator 1. Dez 2003 14:40

Re: ADO + Access + AutoWert
 
Du brauchst nicht auf Access zu schümbven - keine anständige DB macht das anders - ich hänge z.B. in einem Projekt mit 80 Tabellen auf MS-SQL-Server, 3. NormalForm mindestens etc.
An keiner Stelle würde mir einfallen, so ein von Dir genanntes Feature zu vermissen.
Deshalb meine Frage, was Du vorhast. Ich denke, Du kannst dasselbe auch anders erreichen und ev. in Bezug auf DB-Design einen Aha-Effekt abfassen :-). Wenn Du Dir also die Zeit für 'ne kurze Beschreibung nimmst, nehm ich mir glatt die Zeit, nach 'ner Lösung zu suchen...
Gruß

Mario 1. Dez 2003 15:57

Re: ADO + Access + AutoWert
 
Was bringt es Dir denn, wenn Du keine Lücke hast, ausser einem gute Gefühl? Diese Frage kommt immer wieder, aber ich habe es nie verstanden, wieso man sich an der Lücke stören kann.

woki 3. Dez 2003 01:37

Re: ADO + Access + AutoWert
 
Hi,

sas Autowerttfeld muß sich genauso verhalten, wie es das hier tut, weil dies der Mechanismus ist, um die referentielle Integrität der Datenbank sicherzustellen. Access darf das was Du willst hier nicht zulassen, das wäre für jede vernünftig desingte Datenbank eine Katastrophe.

Grüsse
Woki


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 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