AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Autoinc Feld im Clientdataset auf 1 setzen
Thema durchsuchen
Ansicht
Themen-Optionen

Autoinc Feld im Clientdataset auf 1 setzen

Ein Thema von Natcree · begonnen am 28. Jan 2014 · letzter Beitrag vom 28. Jan 2014
Antwort Antwort
Seite 1 von 2  1 2      
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 01:01
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?
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 01:44
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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 02:09
Wie wäre es denn mal mit Delphi-Referenz durchsuchenTClientDataSet.EmptyDataSet?

Manchmal hilft ein Blick in die Doku die Klasse besser zu verstehen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 04:18
autoinc ändert sich nicht
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 06:25
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 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.
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 07:35
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 07:46
Leider hast du nicht angegeben was für eine Datenbank du benutzt. Bei mySQL gäbe es folgende Möglichkeit:

ALTER TABLE tbl AUTO_INCREMENT = 1;
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 07:48
Leider hast du nicht angegeben was für eine Datenbank du benutzt. Bei mySQL gäbe es folgende Möglichkeit:

ALTER TABLE tbl AUTO_INCREMENT = 1;
Er benutzt ein ClientDataSet als Datenbank
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 08:15
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Autoinc Feld im Clientdataset auf 1 setzen

  Alt 28. Jan 2014, 18:04
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
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