Ich war davon wie diese Wie erstelle ich eine Transaktionsnummer?
Wo
- T
TYYYYMMDDNNNNNNNNNNX (1 Zeichen + 19 Stellen) Formatierung zu denken ist, ist Jahr
- MM ist Monat
- DD ist Tag
- N ist Sequencial Nummer
- X prüfen ist Ziffer
Das Problem ist, wie kann ich die sequentielle Nummer generieren? Da mein Primärschlüssel kein Ganzzahlwert für die automatische Inkrementierung ist, würde ich ihn verwenden, aber nicht.
EDIT kann ich die Sequenznummer nach 1 Tag (24 Stunden) selbst zurücksetzen lassen.
- P201012080000000001X < - erste Transaktion von 2010.12.08
- P2010120810000000002X < --- zweiter Transaktion von 2010.12.08
- P201012090000000001X < --- Erster Transaktion von 2010/ 12/09
(X ist der Prüfziffer)
Können Sie eine Datei verwenden? Einfach die Nummer holen, dann hochzählen und speichern? – SwDevMan81
Was sind Ihre Nebenläufigkeitsanforderungen, und gibt es zusätzliche Einschränkungen (z. B. keine Lücken in der Sequenznummer?)? –
Sie könnten einfach jedes Element Ihres Strings explodieren, es würde 6 weitere db-Felder benötigen (was Primärschlüssel sein müssten), aber dies würde den Prozess des Generierens des Strings erleichtern, da Sie überprüfen können, ob es heute eine Bestellung gab und Stellen Sie die Sequenznummer entsprechend ein. Sie bearbeiten dann die 6 Felder, um die Zeichenfolge für die Ausgabe zu erstellen. –