Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL запрос к Access в кириллице, и диругих кодировках 
V
    Опции темы
_Y_
Дата 11.7.2012, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Имею Java программу, MS Access 2003, Windows 7, все не русифицированное.

Программа общается с БД через ODBC, естественно. Посылаю простейший запрос:

"SELECT name FROM nameList WHERE name = '" + suggestion + "';"

Пока suggestion содержи латинские буквы все нормально. А вот если кириллицу - БД возвращает пустой ResultSet, т.е. ничего не находит.

Погуглив нашел только вот такое решение, но оно, вроде, жестко привязывает все удовольствие к кириллице. Но меня интересует, скорее, не кирилица, а UNICOD, т.к. база содержит записи в разных кодировках.

ИМХО, Java, вроде, понимает UNICOD, Access, вроде, тоже понимает. Как бы их заставить общаться на понятном обоим UNICOD-е?


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Vasay
Дата 11.7.2012, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



_Y_, 
Цитата

Погуглив нашел только вот такое решение, но оно, вроде, жестко привязывает все удовольствие к кириллице. Но меня интересует, скорее, не кирилица, а UNICOD, т.к. база содержит записи в разных кодировках.


Если у Вас в базе юникод, то ставьте в  Properties charSet  utf8.

http://docs.oracle.com/javase/1.4.2/docs/g...dbc/bridge.html

Код

// Load the JDBC-ODBC bridge driver
       Class.forName(sun.jdbc.odbc.JdbcOdbcDriver) ;
 
       // setup the properties 
       java.util.Properties prop = new java.util.Properties();
       prop.put("charSet", "UTF8");
       prop.put("user", username);
       prop.put("password", password);
 
       // Connect to the database
       con = DriverManager.getConnection(url, prop);


Это сообщение отредактировал(а) Vasay - 11.7.2012, 11:41


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
LSD
Дата 11.7.2012, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Рекомендую попробовать такой код:
Код

String suggestion = "Robert'); DROP TABLE nameList; --";

должно помочь.


--------------------
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.
PM MAIL WWW   Вверх
Vasay
Дата 11.7.2012, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



LSD, 

Зачем так зло шутить  smile . А вдруг _Y_ попробует, да еще и на рабочей базе? 

Можно же просто сказать что делать подстановку параметров в SQL запрос через "+" может быть опасно. 


Это сообщение отредактировал(а) Vasay - 11.7.2012, 12:32


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
_Y_
Дата 11.7.2012, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Vasay, UTF8 не помогает, к сожалению. Только хуже стало - расширенную часть латинского алфавита (буквы с умляутами разными типа ö или Å) обрабатываться перестали.

Добавлено через 5 минут и 6 секунд
LSD, эту шутку в первом классе детского сада проходят, сколь помню. Но никогда не грех и напомнить smile 

Vasay, не, не опасно. У меня переменная suggestion не вводится напрямую, а генертся после обработки ввода.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Vasay
Дата 11.7.2012, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата(_Y_ @  11.7.2012,  12:33 Найти цитируемый пост)
Vasay, UTF8 не помогает, к сожалению. Только хуже стало - расширенную часть латинского алфавита (буквы с умляутами разными типа ö или Å) обрабатываться перестали.


ХМ. А в какой кодировке все это в Access лежит?

Я сейчас погуглил, народ пишет, про проблему с мостом JDBC-ODBC,  Access и UTF 

http://www.java.net/node/675821


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
_Y_
Дата 11.7.2012, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Vasay, в какой кодировке? Да может дейсствительно и не в UNICOD. От Microsoft. как известно, можно ожидать любых чудес.

Может плюнуть на Access и MySQL  поставить? Лень честно говоря. Непонятно еще будет эта моя задача развиваться или загнется через месяц. Да и не работал я в MySQL  года уже четыре.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Vasay
Дата 11.7.2012, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата(_Y_ @  11.7.2012,  12:46 Найти цитируемый пост)
Может плюнуть на Access и MySQL  поставить? Лень честно говоря. Непонятно еще будет эта моя задача развиваться или загнется через месяц. Да и не работал я в MySQL  года уже четыре.



Так может тогда Java DB ( derby ) ограничится ? 

Это сообщение отредактировал(а) Vasay - 11.7.2012, 12:56


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
_Y_
Дата 11.7.2012, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(Vasay @  11.7.2012,  12:56 Найти цитируемый пост)
Так может тогда Java DB ( derby ) ограничится ? 

А вот про это я ничего не знаю, к сожалению. Сейчас покопаюсь пополню образование.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Vasay
Дата 11.7.2012, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата(_Y_ @  11.7.2012,  13:05 Найти цитируемый пост)
А вот про это я ничего не знаю, к сожалению. Сейчас покопаюсь пополню образование.


Эта БД идет в комплекте с JDK. 

Если используете Netbeans - на вкладке Services она должна отображаться. Оттуда же ей можно управлять. 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
_Y_
Дата 13.7.2012, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Vasay, начал возиться. Интересно. Но использую не Netbeans а Eclipse. Впрочем для него, вроде, тоже плагин есть.

Кстати, а нет ли готовой Java GUI программы для простейшей работы пользователей с этой базой? Логично было бы иметь MDI с таблицами, и SQL запросами. А то как-то изобретение велосипедов в каждой программе - дело глуповатое.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Vasay
Дата 13.7.2012, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата(_Y_ @  13.7.2012,  21:14 Найти цитируемый пост)
Кстати, а нет ли готовой Java GUI программы для простейшей работы пользователей с этой базой? Логично было бы иметь MDI с таблицами, и SQL запросами.


В NetBeans есть
http://netbeans.org/kb/docs/ide/java-db_ru.html

Вроде, SQuirreL SQL клиент с ней работать умеет:
http://squirrel-sql.sourceforge.net/


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
_Y_
Дата 20.7.2012, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Вожусь в свое удовольствие. И сама Derby БД, и SQuirreL SQL клиент очень приятны, хотя мною еще не познаны и на пару процентов smile 


Vasay, спасибо большое smile 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.