Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Autoinc Feld im Clientdataset auf 1 setzen (https://www.delphipraxis.net/178789-autoinc-feld-im-clientdataset-auf-1-setzen.html)

Natcree 28. Jan 2014 00:01

Autoinc Feld im Clientdataset auf 1 setzen
 
Hallo Habe eine Datenbank mit nem ID Autoinc feld. nun soll es während der laufzeit auf 1 gesetz werden.


Wie mache ich das am besten?

Natcree 28. Jan 2014 00:44

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
Also ich leere meine Datenbank so

Delphi-Quellcode:
clientdataset1.First;
while not clientdataset1.EOF do
begin
    clientdataset1.Next;
    clientdataset1.Delete;
end;
Nun will ich <PARAMS AUTOINCVALUE="6"/> auf 1 statt auf 6 setzen

Sir Rufo 28. Jan 2014 01:09

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
Wie wäre es denn mal mit Delphi-Referenz durchsuchenTClientDataSet.EmptyDataSet?

Manchmal hilft ein Blick in die Doku die Klasse besser zu verstehen

Natcree 28. Jan 2014 03:18

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
autoinc ändert sich nicht

sx2008 28. Jan 2014 05:25

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
Zitat:

Zitat von Natcree (Beitrag 1245584)
autoinc ändert sich nicht

Natürlich nicht, weil der Wert den das Feld beim nächsten Einfügen erhält tief in der Datenbank steckt und sich nur mit Klimmzügen (z.B. Tabelle löschen und neu anlegen) ändern lässt.
Aber es ist meist auch nicht nötig den Wert zu ändern.
Wenn man die Tabelle leert und der Autoinczähler weiterläuft ist das ja kein Problem da man weiterhin eindeutige Primärschlüssel erhält.
Zum Problem wird es dann wenn man Datensätze aus verschiedenen strukturgleichen Datenbanken in einer Datenbanktabelle zusammenfassen möchte.
Eventuell kann man dann den ursprünglichen Wert des Feldes mit
Delphi-Quellcode:
Feldobject.Clear
löschen und die Datenbank vergibt dann automatisch einen neuen Wert.
Aber ich würde Autoinc-Felder entfernen und einen anderen Primärschlüssel suchen sobald es Probleme dieser Art gibt.

Sir Rufo 28. Jan 2014 06:35

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
Dann wird doch wohl das Einfachste sein, die Datenmenge zu schließen, die zugehörige Datei zu löschen und dann die Datenmenge wieder zu erzeugen.

baumina 28. Jan 2014 06:46

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
Leider hast du nicht angegeben was für eine Datenbank du benutzt. Bei mySQL gäbe es folgende Möglichkeit:

SQL-Code:
ALTER TABLE tbl AUTO_INCREMENT = 1;

Sir Rufo 28. Jan 2014 06:48

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
Zitat:

Zitat von baumina (Beitrag 1245596)
Leider hast du nicht angegeben was für eine Datenbank du benutzt. Bei mySQL gäbe es folgende Möglichkeit:

SQL-Code:
ALTER TABLE tbl AUTO_INCREMENT = 1;

Er benutzt ein ClientDataSet als Datenbank ;)

baumina 28. Jan 2014 07:15

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
Achso, das kannte ich bislang noch nicht. Nach kurzem Nachlesen sind das dann wohl einfache XML-Dateien und hat nicht wirklich was mit einer Datenbank und SQL-Befehlen zu tun.

Natcree 28. Jan 2014 17:04

AW: Autoinc Feld im Clientdataset auf 1 setzen
 
ich habe nur ein einfaches clientdataset und ne datasource kompo. Kann ich nicht eine leere datei erstellen diese leer machen und dann bei bedarf diese nur ins clientdataset laden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.
Seite 1 von 2  1 2      

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