Hi,
ich lese gerade aus einer MaxDB ein Feld vom Typ CHAR() BYTE aus. In meinem SQL Fenster steht in diesem Feld der Wert CA04408C8B633C76B8844607C477. Auslesen tue ich das bei meinem ResultSet als String (gibts da ne sinnvollere Lösung?)
Wenn ich von Hand (im Windows-Rechner ;-)) die Zahlen aus dem String wieder in Hex umwandeln will kommen nur bei 80% richtige Zahlen raus.
HEX = Hexadezimale Zahl, wie sie im SQL Fenster angezeigt wird
HEX>DEZ = Umwandlung in Int mit dem Windows Taschenrechner
SQL = eigene Umwandlung per Code
Alle bis auf die 3 Hexzahlen die mit 8 anfangen sind korrekt. Nur warum sind die 3 falsch?
Hier mein Code:
Wird der String ohne Umwandlung ausgegeben kommt Ê@Œ‹c<v¸„FÄw¿ heraus. Also erstmal unbrauchbar zum anzeigen und weiterarbeiten.
Hat jemand eine Idee, warum das bei diesen 3 Zahlen nicht funktioniert?
Viele Grüße und danke im vorraus,
ms
ich lese gerade aus einer MaxDB ein Feld vom Typ CHAR() BYTE aus. In meinem SQL Fenster steht in diesem Feld der Wert CA04408C8B633C76B8844607C477. Auslesen tue ich das bei meinem ResultSet als String (gibts da ne sinnvollere Lösung?)
Wenn ich von Hand (im Windows-Rechner ;-)) die Zahlen aus dem String wieder in Hex umwandeln will kommen nur bei 80% richtige Zahlen raus.
HEX = Hexadezimale Zahl, wie sie im SQL Fenster angezeigt wird
HEX>DEZ = Umwandlung in Int mit dem Windows Taschenrechner
SQL = eigene Umwandlung per Code
Code:
HEX HEX>DEZ SQL
CA 202 202 OK
04 4 4 OK
40 64 64 OK
8C 140 338 FALSCH
8B 139 8249 FALSCH
63 99 99 OK
3C 60 60 OK
76 118 118 OK
B8 184 184 OK
84 132 8222 FALSCH
46 70 70 OK
07 7 7 OK
C4 196 196 OK
77 119 119 OK
Alle bis auf die 3 Hexzahlen die mit 8 anfangen sind korrekt. Nur warum sind die 3 falsch?
Hier mein Code:
Code:
String test = results.getString(colNames.get("OBJECTID"));
for (int x = 0; x < test.length(); x++) {
char c = test.charAt(x);
System.out.println((int)c);
}
Wird der String ohne Umwandlung ausgegeben kommt Ê@Œ‹c<v¸„FÄw¿ heraus. Also erstmal unbrauchbar zum anzeigen und weiterarbeiten.
Hat jemand eine Idee, warum das bei diesen 3 Zahlen nicht funktioniert?
Viele Grüße und danke im vorraus,
ms