Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как конвертировать binary в читаемый вид? / 8 сообщений из 8, страница 1 из 1
22.03.2012, 08:50:48
    #37717167
killbond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
Кто-нибудь работал под java с БД MSSQL именно с этим типом данных? Использую Groovy & Grails фреймверк, к сожалению, в java вообще понимаю мало, поэтому сюда и обратился. Делаю приложение на этом фреймверке, суть его подключиться к существующей БД MSSQL и осуществлять изменения в нужных таблицах. Как подключиться к MSSQL из этого фреймверка я нашел, удачно подключился, но вот беда - в таблице имеется строка типа binary и данные grails выводит из этой таблицы тоже в бинарном виде:

т.е. каждый байт является кодом ASCII символа. Это мне не подходит, в php было проще - ничего конвертировать не нужно, binary тип по умолчанию выводился в виде читаемой строки. Как то же самое сделать в grails? Вопрос специфический, ищу ответ безуспешно уже 3 день. Может быть существуют какие настройки драйвера особые или еще что в этом роде, о чем я могу не знать, чтобы сделать этот тип читаемой строкой. Grails это ведь фактически та же java, во всяком случае они очень похожи, отпишитесь пожалуйста, кто работал под java именно с этим типом, как его можно конвертировать, как вы в этом случае сделали? Необязательно именно для grails, мб решение мне тоже подойдет. Или подскажите хотя бы в какую сторону копать?
Возможно следует что-то изменить в настройках источников данных, я же не знаю, что именно, формат настроек у него такой:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
dataSource {
    pooled = true
    driverClassName = "net.sourceforge.jtds.jdbc.Driver"
    username = "sa"
    password = "***"
}
hibernate {
	hibernate.jdbc.use_streams_for_binary=true
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='net.sf.ehcache.hibernate.EhCacheProvider'
}
// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "update" // one of 'create', 'create-drop','update'
            url = "jdbc:jtds:sqlserver://192.168.0.101:61433/RF_USER"
        }
    }


Может быть следует изменить тип данных в domain class на тот тип который я не знаю, хотя я это тоже искал, пробовал менять этот тип в соответствии с этой таблицей, т.е. byte[] но в результате этот тип читается как массив десятичных чисел, соответствующих ASCII таблице.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
class Tbl_rfaccount {
	String id
	String password
	short accounttype
	java.sql.Timestamp birthdate
	String email
    static constraints = {
    }
}

...
Рейтинг: 0 / 0
22.03.2012, 09:28:09
    #37717200
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
killbondв php было проще - ничего конвертировать не нужно, binary тип по умолчанию выводился в виде читаемой строки. Как то же самое сделать в grails? Вопрос специфический, ищу ответ безуспешно уже 3 день
ну и выведи тут пример "читаемой строки" и нечитаемой.
...
Рейтинг: 0 / 0
22.03.2012, 09:40:20
    #37717216
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
Petro123,
упс. У меня наверно фильтр на картинки стоит :) Поэтому суслика не вижу.
Я так понял, в поле набор байт . Например картинка, только размер типа меньше чем image\blob.
...
Рейтинг: 0 / 0
22.03.2012, 09:51:37
    #37717236
killbond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
Petro123, набор байт, но не картинка, обычная строка, в MSSQL имеет тип binary(13) (но менять его нельзя). Например, выдает вот что:
Код: plaintext
74 65 73 74 00 00 00 00 00 00 00 00 00
а должно быть:
test
...
Рейтинг: 0 / 0
22.03.2012, 10:02:10
    #37717247
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
killbond,
начнём с того, кто придумал хранить текст в таком поле? Создать другое поле и прегнать туда могём?
А если руками, то прочитать это и конвертировать:
test -> в байты и обратно.
...
Рейтинг: 0 / 0
22.03.2012, 10:16:43
    #37717269
killbond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
Petro123killbond,
начнём с того, кто придумал хранить текст в таком поле?
Не я, честно ))) Корейцы... БД для корейской онлайн игры - восстанавливается из бекапа и изменение типов полей критично повлияет на работу сервера.
Petro123killbond,
Создать другое поле и прегнать туда могём? А если руками, то прочитать это и конвертировать:
test -> в байты и обратно.
Это значит, что придется дописывать функции непосредственно к БД, чтобы перегонять данные из одного формата в другой, а хотелось бы более изящное решение, без вмешательства в БД.
...
Рейтинг: 0 / 0
22.03.2012, 10:33:10
    #37717313
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
killbond,
я уже писал imho.
вариант не конфигураста а программиста
- прочитать поток байт "как есть"
- chattobinary и обратно.
Удачи!
...
Рейтинг: 0 / 0
22.03.2012, 10:59:22
    #37717377
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как конвертировать binary в читаемый вид?
killbondPetro123, набор байт, но не картинка, обычная строка, в MSSQL имеет тип binary(13) (но менять его нельзя). Например, выдает вот что:
Код: plaintext
74 65 73 74 00 00 00 00 00 00 00 00 00
а должно быть:
test

если ты уже знаешь что это текст а не картинка то прочитай массив байтов и создай из него строку. Типа

public String(byte[] bytes,
String charsetName)
throws UnsupportedEncodingException
Constructs a new String by decoding the specified array of bytes using the specified charset. The length of the new String is a function of the charset, and hence may not be equal to the length of the byte array.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как конвертировать binary в читаемый вид? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]