![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: DBE / SQL
Paradox7 Tabelle zurücksetzen
Hallo zusammen,
ich denke diese Frage wurde sicherlich schon mal beantwortet, leider konnte ich über Suche nichts finden, daher habe ich einfach mal ein neues Topic aufgemacht... Folgendes habe ich vor: 1.) Löschen aller Datensätze aus einer Paradox7 Tabelle 2.) Zurücksetzen der Tabellenid
Delphi-Quellcode:
Mein Code zum Löschen aller Datensätze sieht momentan wie oben gezeigt aus.
begin
if Form1.Label4.Caption <> '2' then showmessage('Sie sind nicht berechtigt diese Funktion zu nutzen!') else begin if messagedlg('Sind sie sicher, dass Sie alle Daten loeschen wollen?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin with Query1 do begin Close; SQL.Text := 'DELETE FROM Studenten'; ExecSQL; end; end; end; end; Wenn ich diese Prozedur ausführe, werden auch alle Datensätze gelöscht. Lege ich nun einen neuen Datensatz an, so wird die ID aber fortgeführt. Wie bekomme ich es hin, das die ID wieder bei 1 startet? Bsp.: 1 alter Datensatz 2 alter Datensatz 3 alter Datensatz 4 alter Datensatz 5 alter Datensatz 6 alter Datensatz LÖSCHUNG aller Daten nun soll die ID wieder bei 1 anfange.... LG Scuby |
Re: Paradox7 Tabelle zurücksetzen
Die ID von AutoInc-Felder wird mit dem Löschen nicht zurückgesetzt.
Die Tabelle enthält einen internen Generator, der von Aussen nicht zugänglich ist. Im Grunde ist das auch nicht nötig; Hauptsache die ID ist immer eindeutig. Andernfalls gibt es 2 Möglichkeiten: 1.) AutoInc-Feld in ein normales Integer-Feld ändern (mit Datenbankoberfläche) und speichern wieder zurück nach AutoInc-Feld ändern 2.) Tabelle komplett löschen und neu anlegen Beide Methoden sind problematisch, wenn es Beziehungen zum ID-Feld gibt. |
Re: Paradox7 Tabelle zurücksetzen
Also wenn wirklich alle Datensätze gelöscht und das AutoInc wieder auf 1 gesetzt werden soll, würde ich auch definitiv zum Löschen der Tabelle und neu anlegen raten. Gerade bei vielen Datensätzen dürfte das auch schneller gehen und vor allem ist der Platz wieder frei. Denn Paradox-Tabellen schrumpfen nicht nach einem Löschvorgang, sondern erst wenn man die Tabellen "packt"m zumindest wenn ich mich noch recht erinnere.
|
Re: Paradox7 Tabelle zurücksetzen
Wieso soll eigentlich die ID wieder zurückgesetzt werden?
|
Re: Paradox7 Tabelle zurücksetzen
Hallo,
ganz einfach, wenn man den Header einer Paradox-Tabelle kennt ;-). procedure ResetAutoInc(Dateiname:string); var myStream : TFileStream; buffer : LongInt; begin buffer:=0; mystream:=TFileStream.Create(Dateiname,fmOpenWrite + fmShareExclusive); mystream.Seek(73,soFromBeginning); mystream.WriteBuffer(buffer,4); mystream.free; end; Ciao Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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