![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: TTable
AutoInc nicht mit "1" beginnen
Hallo zusammen
Gibt es eine Möglichkeiten in ein AutoIncFeld eine Zahl reinzuschreiben, bzw. nicht mit 1 zu beginnen, sondern z.B. mit 10 oder 20 oder so? Also ich hab probiert:
Delphi-Quellcode:
Allerdings wird mir gesagt das in dieses Feld nichts geschrieben werden kann.
Fieldefs.Find('AutoIncFeld').DataType:=ftInteger;
FieldByName('AutoIncFeld').AsString:='12345'; Fieldefs.Find('AutoIncFeld').DataType:=ftAutoInc; Danke schonmal |
Re: AutoInc nicht mit "1" beginnen
erstell 19 datensätze und lösche diese anschließend wieder.
dann müsste der nächste eintrag mit 20 beginnen... |
Re: AutoInc nicht mit "1" beginnen
und wenn ich bei 10000 beginnen will?
Dann ist das doch zu umständlich, oder? Es muss doch irgendwie anders gehen. Trotzdem Danke. |
Re: AutoInc nicht mit "1" beginnen
Verabschiede Dich von dem Gedanken, dass ein AutoInc-Wert eine sinnvolle Größe in Deiner Datensammlung repräsentiert. Solche per "Generator" erzeugten Werte (das können auch u.a. GUIDs sein) eignen sich für Verknüpfungen innerhalb der Datenbank und sollten bis auf wenige Ausnahmen nach Möglichkeit gar keine Bedeutung nach aussen haben. Kümmere Dich von Anfang an selbst um alle sinnhaltigen Werte, dann wirst Du später auch mit richtigen(TM) Datenbanksystemen keine Probleme bekommen.
|
Re: AutoInc nicht mit "1" beginnen
Also bei mySQL kann kann man das beim Erstellender Tabelle angeben: (wenn es denn unbedingt sein muss!?)
Delphi-Quellcode:
CREATE TABLE `data_content` (
`id` bigint(20) NOT NULL auto_increment, `strTitel` varchar(127) NOT NULL default '', `strContent` text NOT NULL, `status` enum('0','1') NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Meine tolle Tabelle' AUTO_INCREMENT=25 ; ^^^^^^^^^^^^^^^^^^ |
Re: AutoInc nicht mit "1" beginnen
Zitat:
das ich das in Frage gestellt hab, hab das hier:
Delphi-Quellcode:
Danke für den Tip!!
while not(Table2.FieldByName('AutoIncField').AsInteger=(Table1.FieldByName('AutoIncField').AsInteger))do
begin try Last; Delete; except end; Append; Post; end; :thumb: EDIT : funzt doch nict ganz. der erste eintrag bleibt leer, werds aber hinbekommen. |
Re: AutoInc nicht mit "1" beginnen
Moin, moin,
vom Prinzip ist es eigentlich "läusig" das AutoInc-Feld für andere Zwecke, wie Kundennummer oder ähnliches zu verwenden. Da Paradox keine Generatoren hat kommt man leider manchmal auf solche Gedanken. Trotzdem ein Prinzip bleibt: Ein AutoInc-Feld ist nie beschreibar bei Paradox. Die MySQL-Variante geht auch nicht. Wahrscheinlich irgendein undokumentierte BDE-Zugriff, aber das lassen wir mal aussen vor. Ok, eine einigermaßen elegnte Krücke unter Paradoxkondition wäre folgende
SQL-Code:
Konsequenz ist aber, dass Du TQuery nimmst und auf TTable verzichtest. Oder Du mußt mit kalkulierten Feldern in der Tablekomponente arbeiten, aber dass ist nun wahrlich nicht der Eleganz letzter Schluss.SELECT (AutoIncFeld + 1000) AS MyNumber, Feld2, Feld,3 FROM MyTable Grüße // Martin |
Re: AutoInc nicht mit "1" beginnen
Es geht über Umwege über die BDE-Funktion DbiDoRestructure oder über manuelles "Patchen" des Headers der Paradox-Datei.
Beispiele und Quellcodes dazu findet man in den Google-Groups wenn man nach folgenden Stichworten sucht "Paradox autoinc min value". Beides ist natürlich nich so toll! |
Re: AutoInc nicht mit "1" beginnen
So jetzt:
Delphi-Quellcode:
funzt perfekt
Append;
Post; while not(Table2.FieldByName('AIF').AsInteger =(Table1.FieldByName('AIF').AsInteger))do begin try Last; Delete; except end; Append; Post; end; Edit; :hello: |
Re: AutoInc nicht mit "1" beginnen
lol das ist aber jetzt nicht dein ernst, dass du das so machst. also ich könnte mir keinen fall vorstellen, wo soetwas sinn macht.
führ nen weiteres integer feld ein und dann ist gut... |
Re: AutoInc nicht mit "1" beginnen
Wie würde "Seven" sagen.. es ist schnell und effizient. Und da Programmierer faule Menschen sind.. :mrgreen:
|
Re: AutoInc nicht mit "1" beginnen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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