Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
- Cache for UNIX (SUSE Enterprise Server for x86-64) 2010.1.1 (Build 503U) Fri Apr 2 2010 23:12:30 EDT - локаль rusw - Внешняя база MySQL, кодировка UTF8 - Доступ по JDBC, пробовал перекодировать: Код: plaintext - При чтении все нормально. Подскажите, что еще смотреть, настраивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2010, 16:25 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
Используйте параметризованные запросы: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2010, 16:49 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
servit, С параметрами какбэ есть проблема... Лезу в базу так (не спрашивайте почему, это отдельная тема): Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2010, 17:07 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
Для параметризованных запросов используйте метод prepareStatement , например: Class ORACLE.test Extends %RegisteredObject { ClassMethod Test( host As %String = "127.0.0.1", port As %Integer = {$$$JDBCGatewayPort}) As %Status { #dim exception As %Exception.StatusException set url="jdbc:oracle:thin:@сервер:порт:схема" set username="логин" set password="пароль" #dim classPath As %ListOfDataTypes=##class(%ListOfDataTypes).%New() ; каталог с jar-файлами драйвера Oracle do classPath.Insert("C:\jdbc\oracle\") try { #dim gateway As %Net.Remote.Gateway=##class(%Net.Remote.Gateway).%New() ; подключаемся к шлюзу $$$ThrowOnError(gateway.%Connect(host,port,,,classPath)) $$$ThrowOnError(gateway.%ClassForName("oracle.jdbc.OracleDriver")) #dim connection As java.sql.Connection=##class(java.sql.DriverManager).getConnection(gateway,url,username,password) #dim statement As java.sql.PreparedStatement=connection. prepareStatement ("update test set str=? where id=?") do statement.setString(1,"Стро'ковое 'зна""чение") do statement.setLong(2,1) #dim rs As java.sql.ResultSet=statement. executeQuery () $$$ThrowOnError(gateway.%Disconnect()) } catch exception { ; выводим текст ошибки на русском языке write $system.Status.GetErrorText(exception.AsStatus(),"ru") } } } coder1cv8С параметрами какбэ есть проблема... Лезу в базу так (не спрашивайте почему, это отдельная тема): Хорошо, не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2010, 17:49 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
servit, Что-то не получается у меня с параметрами ( Пишу: Код: plaintext 1. 2. 3. 4. 5. Пробовал добавить перед запросом "set names utf8;" по идее должно помогать, но в таком варианте insert вообще перестает работать, хотя ошибок при выполнении не возникает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2010, 12:04 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
Что-то я вообще ничего не понимаю... PreparedStatement и не должен быть объектом? Потому что $ISOBJECT(stmt) всегда возвращает 0, независимо от текста запроса. Я думал загвоздка в этом, потому что дальше ругается на <INVALID OREF> при установке параметра: ОШИБКА <Ens>ErrException: <INVALID OREF>zinsertItem+18^ru.packagename.adapters.MySQLOutboundAdapter.4 -- - зарегистрировался как '25 Nov 2010' номер 8 @' d stmt.setString(1, msg.Name)' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2010, 12:19 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
Проблема с кодировкой решена. Если кому-то будет нужно, решается установкой параметров соединения: useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2010, 13:45 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
coder1cv8 , Если Вы формируете текст запроса к СУБД вручную, то не забудьте делать проверку входных параметров в целях борьбы с SQL injection Кто-нибудь проверял каше на уязвимости через SQL injection? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2010, 12:14 |
|
||
|
При записи во внешнюю базу слетает кодировка
|
|||
|---|---|---|---|
|
#18+
servit, а что проверять понятное дело что если использовать параметризованные запросы, то никакие sql-инъекции не страшны, потому что параметры остаются переменными и ничем другим они стать не смогут, а вот если строить sql запрос склеиванием строк, то риск sql-инъекции так же велик как и в любой другой СУБД, и зыке программирования, поэтому во втором случае, нужно обязательно контролировать вставляемые параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2010, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=46&tid=1557898]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 386ms |

| 0 / 0 |
