crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как сконвертировать UTF8 в SQL Latin1, При записи и для запросов SELECT .. LIKE
silver47
  опции профиля:
сообщение 3.1.2011, 11:07
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Доброго времени суток.
Такая проблема у меня: база данных в кодировке SQL Latin1 General CP1 CI AS. При выполнении запросов SELECT все нормально, русские символы отображаются как нужно, но если выполнить
SELECT * FROM tablename WHERE columname like 'somestring%'

то получаю пустоту. При записи в базу данных русского текста, получается что угодно, кроме русского текста. Qt хранит все строки в UTF8 как сконвертировать эти строки в кодировку базы данных. Менять кодировку БД нельзя, т.к. неизвестно как поведет себя буржуйский софт, который для нее писался.

Qt 4.7.0; Win 7; MS SQL 2005

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 13.1.2011, 10:12
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Сам спросил - сам отвечаю, может кому сгодиться: при добавлении символьных строк на сервер из клиента, работающего по юникоду перед символьной строкой следует ставить символ N, дабы сообщить серверу, что следующая строка в кодировке юникод.

Чтобы понятнее было:
SQL
UPDATE dbo.UDFEMP
SET EMAIL = N'привет'
WHERE dbo.UDFEMP.ID = 7186;


ну и для SELECT:
SQL
WHERE something LIKE N'%someString%';


Где прочитал.

Сообщение отредактировал silver47 - 13.1.2011, 10:31
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 11.12.2024, 14:27