Falsche Daten in Feld

Forum zu diversen Themen rund um die Firebird-Programmierung

Moderator: martin.koeditz

Antworten
fswin@web.de
Beiträge: 4
Registriert: Mo 27. Mär 2023, 11:39

Ich habe eine Software, die Daten in Tabellen einträgt wie gewohnt.
Eine Tabelle ist für Käufe von Kunden, in dieser wird das Personal (die Person) mit registriert (UserID).
Diese sieht wie folgt aus

CREATE TABLE UsedCredit
(
Nr VAL_INT32_NOTNULL,
ArtNr VAL_INT32,
Line INTEGER,
Description VAL_ARTIKELDESC,
Price FLOAT,
UserID VAL_USERID,
Datum TIMESTAMP,
Reason VARCHAR(200),
TypOfBook VAL_INT16,

CONSTRAINT PK_USEDCREDIT PRIMARY KEY (Nr,Line)
);

CREATE DOMAIN VAL_USERID AS VARCHAR(26);

In der Software gibt es nur 2 Stellen an dem Diese Variable gesetzt und mit Ihr in die Datenbank eingetragen wird. Zu 80% läuft alles wie gewollt, doch manchmal wird ein anderer Text aus einem anderen Bereich eingetragen wo überhaupt keine Funktion dafür da ist.

Es ist mir langsam Schleierhaft wie das Passieren kann.
Die einzige Erklärung für mich ist dass der Datenbank Server etwas macht.

Hat jemand Ahnung was das sein könnte?
yy.jpg
yy.jpg (27.05 KiB) 20058 mal betrachtet
jhoehne
Beiträge: 39
Registriert: Di 11. Dez 2018, 09:19

Die einzige Erklärung für mich ist dass der Datenbank Server etwas macht.
Gibt es einen Trigger, der dort etwas einträgt?

Ansonsten: ist die "ID" immer 2-stellig? Dann teste doch mal in Deinem Programm wann immer diese Variable gesetzt wird, ob der Wert länger als 2 Stellen ist (etwa indem die Variable eine Property wird mit einem Setter).
--
Joachim
bfuerchau
Beiträge: 485
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Ohne den Code zu kennen, kann man nur raten.
Woher kann der Text denn kommen? Ggf. aus einer anderen Sicht oder Ansicht?
Mit welcher Sprache arbeitst du?
Hier kann z.B. eine falsche oder doppelte Bindung zwischen Datenfeld und Datenbankfeld ein Problem sein.
Z.B. in einem Bearbeitungsformular Satz 1 und in einem Ansichtsformular Satz 2. Und irgendwo wird dann was im Speicher automatisch verändert.

Um es am Beispiel C# und DataTable-Objekt zu verdeutlichen:
Hier kann man ein RowChanged-Event überwachen und so im Callstack sehen, von wo das ausgelöst wurde und welche Datenzeile dies betrifft.
Antworten