AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi AutoInc nicht mit "1" beginnen
Thema durchsuchen
Ansicht
Themen-Optionen

AutoInc nicht mit "1" beginnen

Ein Thema von Angel4585 · begonnen am 17. Nov 2005 · letzter Beitrag vom 17. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 10:09
Datenbank: Paradox • Version: 7 • Zugriff über: TTable
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:
Fieldefs.Find('AutoIncFeld').DataType:=ftInteger;
FieldByName('AutoIncFeld').AsString:='12345';
Fieldefs.Find('AutoIncFeld').DataType:=ftAutoInc;
Allerdings wird mir gesagt das in dieses Feld nichts geschrieben werden kann.

Danke schonmal
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#2

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 10:22
erstell 19 datensätze und lösche diese anschließend wieder.

dann müsste der nächste eintrag mit 20 beginnen...
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 10:25
und wenn ich bei 10000 beginnen will?

Dann ist das doch zu umständlich, oder?

Es muss doch irgendwie anders gehen. Trotzdem Danke.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von rwachtel
rwachtel

Registriert seit: 26. Aug 2004
Ort: Köln
530 Beiträge
 
RAD-Studio 2010 Pro
 
#4

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 10:42
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.
Robert Wachtel
  Mit Zitat antworten Zitat
noch_ein_hannes

Registriert seit: 18. Sep 2003
130 Beiträge
 
#5

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 10:44
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 ;
                                            ^^^^^^^^^^^^^^^^^^
- everything is possible -
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 11:02
Zitat:
erstell 19 datensätze und lösche diese anschließend wieder.

dann müsste der nächste eintrag mit 20 beginnen...
SORRY SORRY SORRY

das ich das in Frage gestellt hab, hab das hier:

Delphi-Quellcode:
 while not(Table2.FieldByName('AutoIncField').AsInteger=(Table1.FieldByName('AutoIncField').AsInteger))do
      begin
      try
       Last;
       Delete;
      except end;
      Append;
      Post;
      end;
Danke für den Tip!!


EDIT : funzt doch nict ganz. der erste eintrag bleibt leer, werds aber hinbekommen.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#7

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 11:04
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:

SELECT (AutoIncFeld + 1000) AS MyNumber, Feld2, Feld,3 FROM MyTable
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.

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#8

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 11:12
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!
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#9

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 11:32
So jetzt:
Delphi-Quellcode:
Append;
Post;
while not(Table2.FieldByName('AIF').AsInteger =(Table1.FieldByName('AIF').AsInteger))do
 begin
 try
  Last;
  Delete;
 except
  end;
 Append;
 Post;
 end;
Edit;
funzt perfekt

Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#10

Re: AutoInc nicht mit "1" beginnen

  Alt 17. Nov 2005, 11:35
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...
  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 15:28 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