Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Русский язык при поиске в англоязычной версии программы  [new]
dvopros
Member

Откуда:
Сообщений: 3
Добрый день!

Абсолютный новичок, изучаю SQL сам. Windows и Microsoft SQL на английских языках. Добавить русский в Microsoft SQL не могу, так для установки русского языка требует Microsoft Visual Studio 2015.

При запросах типа:

select * from AllData$
where ClothSilh = 'Пирожок'

Пирожок выделяется и значения не выводятся. Если сделать так, добавив N перед кавычками, то появляется 642 строки.

select * from AllData$
where ClothSilh = N 'Пирожок'


Как в моём случае сделать возможным работы с русским текстом в англоязычной версии программы? Гуглил 2 часа - все для старых версий MySQL....

Заранее спасибо!
16 мар 19, 00:30    [21834437]     Ответить | Цитировать Сообщить модератору
 Re: Русский язык при поиске в англоязычной версии программы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36280
автор
Как в моём случае сделать возможным работы с русским текстом в англоязычной версии программы?

автор
Если сделать так, добавив N перед кавычками, то появляется 642 строки.
16 мар 19, 00:45    [21834443]     Ответить | Цитировать Сообщить модератору
 Re: Русский язык при поиске в англоязычной версии программы  [new]
dvopros
Member

Откуда:
Сообщений: 3
Гавриленко Сергей Алексеевич,

Спасибо за столь быстрый ответ. Вопрос был - как без N нативно добавить поддержку русского языка? Спасибо
16 мар 19, 00:49    [21834446]     Ответить | Цитировать Сообщить модератору
 Re: Русский язык при поиске в англоязычной версии программы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36280
https://www.sql.ru/faq/faq_topic.aspx?fid=127
16 мар 19, 01:17    [21834453]     Ответить | Цитировать Сообщить модератору
 Re: Русский язык при поиске в англоязычной версии программы  [new]
dvopros
Member

Откуда:
Сообщений: 3
Гавриленко Сергей Алексеевич
https://www.sql.ru/faq/faq_topic.aspx?fid=127


Не знаю что и сказать - я хочу писать без N - возможно мое желание некорректное.

Потратив кучу времени, удалось сделать следующее:
1) Перевести базу в режим сингл юзера, так как при попытке смены collation выдавалась ошибка 5030
2) поменять Collation на SQL_Latin1_General_CP1251_CS_AS
3) Вернуть Multi User режим
4) Теперь N можно не использовать - строки выдаются при использовании:

select * from AllData$
where ClothSilh = 'Пирожок'

Прошу не судить строго - вообще новичок полный. Мне кажется удобней сменить Collation и N не использовать? Спасибо!
16 мар 19, 01:51    [21834459]     Ответить | Цитировать Сообщить модератору
 Re: Русский язык при поиске в англоязычной версии программы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 28747
dvopros
Мне кажется удобней сменить Collation и N не использовать?
Нет, удобнее использоватьь N
Смена коллейшена - это способ быстро заткнуть ошибки программистов, "что бы заработало".

У вас же 'Пирожок' не захардкоден в коде программы? Вы, наверное, сляпываете строку запроса в программе?
Так вот, это, во первых, плохо само по себе, ибо небезопасно (нужно использовать параметры, и тогда никаких N не надо),
Во вторых, даже если так делать, пользователь может набрать слово для поиска и не на русском языке. Зачем сразу обрезать все языки? Пусть у вас прямо тут это заработает, но это называется "простокодер", когда пишут неправильно, лишь бы заработало на компе у программиста, а при малейшем изменении условий (например, установили прогу на английскую винду) оно уже не работает.

Т.е. нужно либо писать правильно, то есть передавать параметры как параметры, а не клеить строку, либо, если пишется г0vнокод, так хотя бы писать N перед строковыми константами.
16 мар 19, 10:50    [21834502]     Ответить | Цитировать Сообщить модератору
 Re: Русский язык при поиске в англоязычной версии программы  [new]
AndrF
Member

Откуда:
Сообщений: 2065
N - указывает что строка в кавычках в уенкоде. Если у сервера правильно выставлен Collation, то N не требуется.
18 мар 19, 16:53    [21836252]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить