![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Antarn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
В базе одно из полей - binary(14) , значения поля записываются как "CONVERT(binary, 'text')" .
Как преобразовать это поле обратно в читаемый текст 'text' ? ( получаю через rs.getString() ) Это сообщение отредактировал(а) Antarn - 8.6.2008, 18:22 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Antarn |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
LSD, спасибо за идею. Но тогда получается лишний запрос, так как раньше я вытаскивал все поля:
а сейчас еще и
Уже полученный бинарный текст в "нормальный" нельзя преобразовать встроенными средствами ? Добавлено через 5 минут и 14 секунд p.s.: конечно можно в селекте перечислить все поля таблицы, но в той же базе есть таблица с 100+ полями и такой вариант получается не совсем удобным. |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Намеков не понимаем
![]() Телепатов тут не водится (все вымерли). Ты не сказал, но что за СУБД, ни что это за функция которая конвертирует данные, ни как именно она это делает. Потому дать совет, как это можно декодировать на клиенте - нельзя. Да и вообще ничего конкретного сказать нельзя. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Antarn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
LSD, пардон, думал что поля binary и класс ResultSet есть для всех баз
![]() база MSSQL. Подключаюсь через SQLServerDataSource().
Функцию, которая из binary(14) сделает читаемый текст, я и ищу, так как к примеру rs.getString("name") получает "61666473660000000000000000000000" , а я хочу видеть "vaseapupkin". Как это преобразовать ? Что еще забыл указать для полноты картины ? ![]() |
|||
|
||||
Antarn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
Всё, разобрался:
такой запрос
вернёт ряд, где последнее поле text и есть удобоваримый текст. LSD, спасибо ![]() ![]() Это сообщение отредактировал(а) Antarn - 9.6.2008, 12:38 |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Уже веселей
![]() Получить не строку а байты можно так:
как из них получить строку, зависит от того как работает функция CONVERT. Судя по описанию, она просто преобразует строку в байты, вопрос только в том, в какой кодировке она это делает. Из байтов получить строку можно так:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Antarn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
CONVERT оказывается преобразовывала символы в их хекс-значение.
То есть строка "afdsf" становилась "0x6166647366" (61 - a, 66 - f, 64 - d, 73 - s). Я преобразовал обратно вот так:
Может есть другой, лучший способ ? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
CONVERT не преобразовывает символы в их HEX коды. Он преобразовывает их в байты, а вот уже байты драйвер преобразует в HEX коды когда ты вызываешь getString(). Как получить байты и как из байтов получить строку я тебе уже показал. Вопрос только в кодировке. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |