Tom: Rückwandlung klappt einfach nicht!

Beitrag lesen

Hello,

Bisher ausprobiert habe ich
* binaray
* cast()
* convert()
* hex()
* unhex()

* conv()

Bisschen kompliziert, aber so scheint es in der einen Richtung schon mal zu gehen:

posting-> 0x0010001B0074005E00620039

Pro Tupel werden zwei Bytes benutzt.

select conv(hex(substring(posting, -2)), 16, 10) zahl from postings where id=1223;
zahl -> 57

Ich finde einfach den Rückweg nicht.
Wenn ich ein Tupel abtrenne

0x0010001B0074005E0062     0039

dann die Konvertierung durchführe um die Incremnetierung vorzunehmen, bekomme ich es einfach hinterher nicht wieder rückkonvertiert und wieder hinten angehängt.
Es gehen entweder die führenden Nullen des Tupels verloren oder ich bekomme ungewöhnliche Werte heraus. conv(conv(Wert, 16, 10) +1, 10, 16) klappt nicht so, wie ich mir das gedacht hatte.

Wenn ich den gesamtgen Wert (Achtung, im Extremfall 254 Bytes lang) um eins erhöhen könnte, wäre mir auch geholfen. Ich muss nur vorher überprüfen, dass ich keinen Überlauf bekomme, der Maximalwert des Tupel (FFFF) also nicht überschritten wird. Dann muss ich einen Fehler auslösen.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bikers-lodge.com