J
Jörn
Gast
Hallo Leute!
Habe ein Problem mit dem Auslesen von Binärdaten aus einer MS-SQL Datenbank.
Zuerst einmal habe ich eine Abfrage auf die Tabelle gemacht und die Binärdaten in einem Result gespeichert. Die Daten sind als BLOB in der Datenbank gespeichert. Bei meiner Abfrage wurde ein Feld einer Spalte abgefragt.
Im Ergebnis sind 721*1201*2 = 1731842 bytes.
Man kann sich das wie eine Matrix vorstellen, indem es 721 Spalten und 1201 Zeilen gibt (hat jetzt nichts mit dem Aufbau der Tabelle zu tun). Die eigentlichen Daten bestehen dann aus jeweils zwei bytes (im Result stehen dann 1731842 bytes hintereinander).
Dieses Ergebnis möchte ich jetzt gerne verarbeiten, mir immer zwei bytes nehmen und diese dann zusammen in einen int-Wert konvertieren.
Hierbei arbeite ich mit zwei Schleifen. Eine äußere Schleife läuft ingesamt 721 mal, die innere 1201 mal über das Result.
Für die äußere Schleife sollen jetzt jeweils 2402 bytes aus dem Result entnommen werden, um davon 1201 mal 2 bytes zu entnehmen, die ich dann in einen int-Wert umwandeln möchte.
Die Frage ist nun: Wie kann ich aus meinem Result erst einmal 2402 bytes bekommen, um von dem aus auf immer zwei bytes zu gelangen, die ich dann in einen int-Wert umwandeln kann? Oder ist es besser, nur eine Schleife zu benutzen und dann aus dem Result immer zwei bytes zu nehmen und diese in einen int-Wert zu konvertieren?
ResultSet rSet = statement.executeQuery();
while (rSet.next()) {
for (int j = 0; j <= 720; j++) {
// hier vielleicht 2402 bytes aus dem rSet nehmen
// byte[] buff = new byte[2402];
for (int k = 0; k <= 1200; k++) {
// hier zwei bytes von buff nehmen und in einen int umwandeln
}
}
}
Leider habe ich von Binärdaten nicht allzu viel Ahnung und ich hoffe, es ist nicht allzu kompliziert beschrieben und mir kann jemand helfen.
Dank im voraus.
Gruß Jörn
Habe ein Problem mit dem Auslesen von Binärdaten aus einer MS-SQL Datenbank.
Zuerst einmal habe ich eine Abfrage auf die Tabelle gemacht und die Binärdaten in einem Result gespeichert. Die Daten sind als BLOB in der Datenbank gespeichert. Bei meiner Abfrage wurde ein Feld einer Spalte abgefragt.
Im Ergebnis sind 721*1201*2 = 1731842 bytes.
Man kann sich das wie eine Matrix vorstellen, indem es 721 Spalten und 1201 Zeilen gibt (hat jetzt nichts mit dem Aufbau der Tabelle zu tun). Die eigentlichen Daten bestehen dann aus jeweils zwei bytes (im Result stehen dann 1731842 bytes hintereinander).
Dieses Ergebnis möchte ich jetzt gerne verarbeiten, mir immer zwei bytes nehmen und diese dann zusammen in einen int-Wert konvertieren.
Hierbei arbeite ich mit zwei Schleifen. Eine äußere Schleife läuft ingesamt 721 mal, die innere 1201 mal über das Result.
Für die äußere Schleife sollen jetzt jeweils 2402 bytes aus dem Result entnommen werden, um davon 1201 mal 2 bytes zu entnehmen, die ich dann in einen int-Wert umwandeln möchte.
Die Frage ist nun: Wie kann ich aus meinem Result erst einmal 2402 bytes bekommen, um von dem aus auf immer zwei bytes zu gelangen, die ich dann in einen int-Wert umwandeln kann? Oder ist es besser, nur eine Schleife zu benutzen und dann aus dem Result immer zwei bytes zu nehmen und diese in einen int-Wert zu konvertieren?
ResultSet rSet = statement.executeQuery();
while (rSet.next()) {
for (int j = 0; j <= 720; j++) {
// hier vielleicht 2402 bytes aus dem rSet nehmen
// byte[] buff = new byte[2402];
for (int k = 0; k <= 1200; k++) {
// hier zwei bytes von buff nehmen und in einen int umwandeln
}
}
}
Leider habe ich von Binärdaten nicht allzu viel Ahnung und ich hoffe, es ist nicht allzu kompliziert beschrieben und mir kann jemand helfen.
Dank im voraus.
Gruß Jörn