Wenn ich von einem Integer spreche, spreche ich in der Regel von einem ganzzahligen Datentyp, der in 4 Bytes bzw. 32 Bit dargestellt wird. Als Zweierkomplement mit Vorzeichenbit lassen sich dort also Zahlen im Bereich von [-2.147.483.648; 2.147.483.647] darstellen. Das soweit vorweg.
Nun war es so, dass in den letzten 2 Wochen regelmäßig Lastschriften mit dem Verweis "Kontonummer falsch" zu uns zurückkamen, wo die in der Datenbank hinterlegten Daten sich jedoch nach Rücksprache mit dem Kunden immer als richtig erwiesen. Ein wenig Kopfzerbrechen bereitete mir die Geschichte schon und ich war kurz davor bei unserer Bank anzurufen um dort mal nach der Fehlerursache zu suchen.
Ich habe mir dann aber doch nochmal die Dateien angeschaut, die wir zuvor mit den Lastschriften übermittelt haben, und für die Irrläufer jeweils immer die selbe Kontonummer gefunden: 2147483647
Ohne, dass es mir da schon bewusst gewesen wäre, diese Zahl kam mir so verdammt bekannt vor!
Natürlich: 2147483647 ist die maximal darstellbare Zahl eines 32-Bit Integer. Und so war alles eigentlich mein Fehler, denn aus irgendeiner Gründlichkeit heraus habe ich die Kontonummer vor dem Export nochmal aus einer Zeichenkette heraus in besagten Integer konvertiert.
Schade nur, dass dieser Fehler bares Geld gekostet hat - das ist wohl der Preis dafür, wenn man alles selbst macht
Kommentare