| Autor |
Beitrag |
colaka
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: So 04.07.10 19:41
Hallo,
mein Problem ist offensichtlich so primitiv, daß ich wohl der Einzige bin, der es hat. Jedenfalls habe ich über die Suche nichts finden können.
In meiner Warenwirtschaft werden über ein AutoInc-Feld die Rechnungsnummern automatisch vergeben. Wenn das Programm neu installiert wird, erhält die 1. Rechnung also automatisch die Rechnungsnummer 1. Ich möchte aber, daß der Benutzer die Nummer für die erste Rechnung beliebig einstellen kann, also z.B. 1000 oder 5623. Von da an soll das Programm dann weiter hochzählen.
Wie kann ich denn das erreichen?
Danke Ebi
|
|
Mitmischer 1703
      
Beiträge: 754
Erhaltene Danke: 19
Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
|
Verfasst: So 04.07.10 19:48
ähm, von 1000 hochzählen kannst du mit Schleifen, z.B so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| for i := 1000 to 5000 do begin tuWas; end;
i := 1000; repeat inc(i); until I = 5000;
i := 1000; while I < 5000 do inc(i); |
war das deine Frage?
_________________ Die Lösung ist nicht siebzehn.
Zuletzt bearbeitet von Mitmischer 1703 am So 04.07.10 21:54, insgesamt 1-mal bearbeitet
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: So 04.07.10 19:59
Hi
Es geht offensichtlich um eine bestimmte Form von Datenbank, die Variable befindet sich in einem AutoInc-Feld und soll nun ein einziges Mal von Hand zugewiesen werden.
Um welche Datenbank-Lösung handelt es sich denn?  Hast du einmal versucht, dem Feld - genau, wie du es sonst machen würdest - über seinen Namen einen Wert zuzuweisen?
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
colaka 
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: So 04.07.10 20:26
Hallo,
sorry, da habe ich mich wohl nicht ganz verständlich ausgedrückt. Das Hochzählen ist nicht mein Problem, das macht ein AutoInc-Feld doch von alleine. Mein Problem ist, daß nach einer Neuinstallation des Programmes in der Rechnungstabelle die Nummer für die 1. Rechnung nicht 1 sein soll, sondern daß sie auf einen beliebigen Wert eingestellt werden kann.
Danke Ebi
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: So 04.07.10 20:39
Hi,
Hab' dich schon so verstanden - um welche Datenbank handelt es sich denn?
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
colaka 
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: So 04.07.10 20:46
Hallo,
es handelt sich um eine Paradoxtabelle.
|
|
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: So 04.07.10 21:22
was spricht denn dagegen den unterschied zu speichern und dann dazu zu addieren?
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: So 04.07.10 21:45
FinnO hat folgendes geschrieben : | | was spricht denn dagegen den unterschied zu speichern und dann dazu zu addieren? |
Weil es ein Autoinc - Feld ist.
Beim Anlegen der Tabelle sollte dann doch eigentlich der Initialwert bei x liegen, von dem Stand aus wird dann später weiter automatisch erhöht.
Edit:
2004 wurde schonmal drüber nachgedacht.
forum.delphi-treff.d...4che-Autoinc-Problem
lmgtfy.com/?q=parado...toinc+initialisieren <- soll nur Spass sein, habe ich neulich bekommen, daher will ich es auch mal weitergeben 
|
|
Critter
      
Beiträge: 328
Erhaltene Danke: 3
Windows 7
Delphi 7 Pro.
|
Verfasst: Mo 05.07.10 11:27
Hi,
wenn ich mich richtig an meine alten Paradox Tage erinnere (mit dem grausigen Ding würde ich nicht mehr arbeiten wollen, schon gar nicht im Zusammenhang mit der BDE) musste man dabei Trixen. Der Trick ist, das Feld erst in einen Integer zu konvertieren, den gewünschten Wert einsetzen und dann wieder zurück zu konvertieren. Wenn mich die Erinnerung nicht täuscht ist der nächste Autoinc Wert dann Max + 1.
Was du suchst sollte also:
SQL-Anweisung 1:
| ALTER TABLE TblName ALTER COLUMN ColName integer |
lauten und später das gleiche noch mal mit AutoInc anstelle von Integer.
critter
_________________ Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)
|
|