Проблема с SQLQuery кирилица в тексе запроса.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение vitaly_l » 02.12.2017 10:39:01

vitaly_l: базы данных - не всегда бывают в Ansi кодировке. Соответственно, наиболее оптимальным решением является указание базе данных, перед запросом, в какой кодировке ей принимать SQL-запрос, а не декодирование SQL-запроса в Ansi.

jsa: Это так, вот только не могу найти как это сделать в MS SQL , среди параметров SET нет такого чтобы можно было установить кодировку на сессию.

Ну так надо найти эти установки, а не городить огород. Если повезёт, то прямо в этом топике найдёте.

SET CHARACTER SET 'utf8' и SET NAMES utf8 - что не работают?

jsa писал(а):vitaly_l: т.к. понятие "гениальность" придумали ради получения халявы на халяву.
jsa: не понял мысль.

Гении - это единственные люди, которые в момент смерти - могут забрать с собой нечто ценное. Все остальные - бессильны забрать с собой, что либо. Учитывая неизбежную гибель планеты - гении могут забрать с собой, настолько ценные вещи, что на оплату не хватит всех: денег, алмазов и золота - находящихся в Солнечной системе. Соответственно чтобы получить, столь ценные артефакты, люди прибегают к мошенничеству и всячески одурачивают гениев. И само понятие: "гений" - придумано для одурачивания гениев и получения на халяву, знаний, которые стоят дороже чем Солнечная система. (с)

В частности, например В.В,Путин, для получения на халяву уникальных знаний - говорит, что: "изобретатель Искусственного интеллекта станет Властелином мира", но на самом деле: далеко не факт что гению оплатят его труд. И далеко не факт что, этому гению сохранят жизнь, после того как он передаст знания, позволяющие делать настоящий ИИ. (с)

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение jsa » 02.12.2017 12:03:30

vitaly_l писал(а):SET CHARACTER SET 'utf8' и SET NAMES utf8 - что не работают?


Путаете MySQL и MS SQL

Гении - это единственные люди, которые в момент смерти - могут забрать с собой нечто ценное. Все остальные - бессильны забрать с собой, что либо. Учитывая неизбежную гибель планеты - гении могут забрать с собой, настолько ценные вещи, что на оплату не хватит всех: денег, алмазов и золота - находящихся в Солнечной системе. Соответственно чтобы получить, столь ценные артефакты, люди прибегают к мошенничеству и всячески одурачивают гениев. И само понятие: "гений" - придумано для одурачивания гениев и получения на халяву, знаний, которые стоят дороже чем Солнечная система. (с)

Оккультно-мистический бред. Слов гений имеет конкретное происхождение, и конкретные значения в разные времена.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение vitaly_l » 02.12.2017 12:34:41

vitaly_l: Гении - это единственные люди, которые в момент смерти - могут забрать с собой нечто ценное. Все остальные - бессильны забрать с собой, что либо. Учитывая неизбежную гибель планеты - гении могут забрать с собой, настолько ценные вещи, что на оплату не хватит всех: денег, алмазов и золота - находящихся в Солнечной системе. Соответственно чтобы получить, столь ценные артефакты, люди прибегают к мошенничеству и всячески одурачивают гениев. И само понятие: "гений" - придумано для одурачивания гениев и получения на халяву, знаний, которые стоят дороже чем Солнечная система. (с)

jsa: Оккультно-мистический бред


Когда, придёт время неизбежной гибели - человечество, в момент осознания неизбежной гибели всего человечества - прозреет. И все люди будут проклинать таких как Вы. Потому что, одна такая "ваша или подобная" фраза, сказанная: Гению - может стоить жизни всей цивилизации Солнечной системы. Но бездарям - этого не понять.

Код: Выделить всё
Гениа́льность (от лат. genius — «дух») — высший уровень интеллектуального или творческого функционирования личности, который реально проявляется в выдающихся научных открытиях или философских концепциях, технических или технологических изобретениях, социальных преобразованиях, создании художественных произведений, имеющих отдалённые последствия во многих областях культуры. О гениальности говорят, когда достижения расцениваются как новый этап в определённой сфере деятельности, считаются опережающими своё время, формируя зону ближайшего развития культуры.

https://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C


jsa писал(а):Путаете MySQL и MS SQL

Ну так найдите аналог запроса для MS SQL Неужели это сложно?
Или Вы хотите наврать что, в MS SQL - невозможно задать кодировку перед запросом?
PS : ( укажите "CharacterSet" => "UTF-8" как параметр соединения - это из вики MsSQL)

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение jsa » 02.12.2017 17:10:11

vitaly_l писал(а):Когда, придёт время неизбежной гибели - человечество, в момент осознания неизбежной гибели всего человечества - прозреет. И все люди будут проклинать таких как Вы. Потому что, одна такая "ваша или подобная" фраза, сказанная: Гению - может стоить жизни всей цивилизации Солнечной системы. Но бездарям - этого не понять.

Отбрось свои идеи и теории и внемли Истине.

16. В то время когда Павел ждал Силу и Тимофея в Афинах, он страдал душой, видя, что город полон идолов.
17. Oн рассуждал в синагоге с почитавшими истинного Бога иудеями и греками, и с теми, кого встречал на рыночной площади.
18. Некоторые философы-эпикурейцы и стоики стали спорить с Павлом. Одни из них говорили: «Что этот пустослов хочет сказать?» — другие: «Он, видно, проповедник чужих богов?» Они говорили так, потому что он проповедовал Благую Весть об Иисусе и воскрешении из мёртвых.
19. Они привели Павла в Ареопаг, говоря: «Можем ли мы узнать, что это за новое учение, которое ты проповедуешь?
20. Всё, что ты проповедуешь, кажется нам странным. Мы хотим знать, что это значит».
21. Жители Афин и живущие там чужеземцы занимались только тем, что проводили время в разговорах, чтобы говорить и слушать что-нибудь новое.

22. И Павел, став перед Ареопагом, сказал: «Афиняне, я вижу, что вы во всём набожны,
23. потому что когда я проходил по городу и осматривал ваши святыни, я нашёл жертвенник, на котором было написано: „Неведомому Богу”. Так вот, Бог, Которому вы поклоняетесь, не зная Его, и есть тот Бог, Которого я провозглашаю вам.
24. Так как Бог, сотворивший мир и всё, чем полон он, есть Господь небес и земли, то Он не живёт в храмах, построенных руками человеческими,
25. и не руки человеческие служат Ему службу, потому что Он никогда ни в чём не нуждается. Он даёт человеку и жизнь, и дыхание, и вообще всё.
26. Бог создал сначала одного человека, а после него и все народы земли, и определил времена и предел их обитания.
27. Бог хотел, чтобы люди искали Его и, возможно, они устремятся к нему и найдут Его, хотя Бог так недалеко от каждого из нас.
28. Потому что в Боге мы живём, двигаемся и существуем. Вот как сказали некоторые из ваших поэтов: „Потому что мы его дети”.
29. Итак, будучи Божьими детьми, мы не должны думать, что Господь сотворён из золота, серебра или камня — образ, созданный воображением или руками человеческими.
30. В прошлом Бог отнёсся снисходительно к людям, которые не понимали Его, но теперь Он повелевает всем покаяться и прийти к Нему.
31. Потому что Он назначил День, в который будет праведно судить весь мир через избранного им Человека. Бог доказал всем это, воскресив Его из мёртвых».
(Деян.17:16-31)

Добавлено спустя 23 минуты 44 секунды:
vitaly_l писал(а):Или Вы хотите наврать что, в MS SQL - невозможно задать кодировку перед запросом?

Искал параметр для SET думал в скрипте задавать надо.
vitaly_l писал(а):PS : ( укажите "CharacterSet" => "UTF-8" как параметр соединения - это из вики MsSQL)

Это да, работает, спасибо.
Код: Выделить всё
SQLConnection.CharSet:='UTF-8';
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение Лекс Айрин » 02.12.2017 17:39:55

jsa, нарушаем правила? Это вообще-то не раздел "потрепаться". Плюс, эта тема настолько специфична, что, допустим, ты этой цитатой оскорбляешь меня как верующего.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение vitaly_l » 02.12.2017 18:05:24

jsa писал(а):Отбрось свои идеи и теории и внемли Истине.

В моей стране говорят: На Бога надейся, а сам не ... :wink: <== И эта коротенькая, но очень весомая мудрость моего народа, мне дороже вашей "истины".

.

Добавлено спустя 1 минуту 16 секунд:
jsa писал(а):SQLConnection.CharSet:='UTF-8';

Теперь верно.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение jsa » 02.12.2017 21:06:19

Лекс Айрин писал(а):jsa, нарушаем правила? Это вообще-то не раздел "потрепаться". Плюс, эта тема настолько специфична, что, допустим, ты этой цитатой оскорбляешь меня как верующего.

Почему ко мне претензии? Я что ли начал оккультные и/или гностические телеги тут задвигать? Учите старожила не флудить на религиозные темы.
И про оскорбления вас как верующего, вот только не надо дурачка включать. Оскорбляются при отсутствии оскорбления только они самые.
Так как вопрос решен, тему можно почистить и закрыть.
Всем спасибо.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение Лекс Айрин » 03.12.2017 12:38:21

jsa, А ты думаешь, что все тут обязательно должны быть христиане? Я, к примеру, нет. Но даже если бы и был, то такое суетное употребление священного текста для них оскорбительно. Это я знаю точно, так как пришлось общаться.

С Виталиком все сложно. Но даже при этом он старается не нарушать правила. И он, простите, не начинал затрагивать ни гностических, ни религиозных тем. Это был чисто культурно-исторический контекст. А если даже и проскользнуло, то невольно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение alexs » 04.12.2017 09:31:54

jsa
Если обидел своим заявлением - прошу прощения :-)
Но совет тем не менее остаётся в силе.
В Delphi/Lazarus есть своя идеология работы с данными. И в этой идеологии проходит чёткое разделение на визуальную и не визуальную часть. И ваше консольное приложение не является чем-то уникальным.
Начинающие (или пришедшие с других систем) разработчики очень часто не понимают этого и пытаются реализовать так, как им видется удобнее. В результате это порождает кучу лишнего кода, глупых ошибок. Вот поэтому и не надо обижаться на советы.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4051
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение wofs » 04.12.2017 11:02:52

Лекс Айрин писал(а):
По возможности, аккуратнее с этой возможностью. Иначе потом могут выйти ошибки дублирования путей. Вообще, должно добавляться автоматически, когда добавляешь пакет в uses.

Нифига не добавляется. лазутф8 зависит от лцл, а у него консоль. Я при портировании dll с делфи на Лазарус тоже с таким сталкивался. В итоге просто переписал требуемую функцию кодировки на свой лад, без лазутф8.
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение Лекс Айрин » 04.12.2017 11:14:28

wofs,все работает. Что я делаю не так?
Изображение
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение wofs » 04.12.2017 11:27:37

Лекс Айрин писал(а):wofs,все работает. Что я делаю не так?

У вас есть в требованиях LCL.Без указания в требуемых пакетах LCL - компилятор не найдет путь к LazUTF8.
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение Лекс Айрин » 04.12.2017 11:34:38

А вообще, чтобы работать с утф8 в консоли есть другие методы. И они описаны в вики. И, кстати, консоль не означает отсутствия lcl, т. к. есть виджет поддерживающий консоль. Ах да... а ты уверен, что она находится в lazutf8? Есть еще и LConvEncoding, в которой тоже описаны функции перекодировки. Да и, как ни странно, сама lazutf8 мало связана связана с LCL (зависимости только от RTL) и входит в состав пакета LazUtils. Конкретно в твоем случае надо было просто скопировать файл в состав проекта.

Добавлено спустя 20 минут:
wofs писал(а):Без указания в требуемых пакетах LCL - компилятор не найдет путь к LazUTF8.


Это не так. Я специально перепроверил. LazUtf8 входит в состав пакета LazUtils, который никак не соотносится с LCL. Вообще, даже чисто теоретически. Если он нужен вне Lazarus, то надо указывать путь до всего пакета в свойствах компилятора (или проекта, что для консоли чуть сложнее). Или интегрировать в компилятор.
Но это путь в никуда... есть стандартные методы, которые гораздо проще и не грозят порчей компилятору/среде разработки. Я сам ратовал за самописные методы и приходится от них планомерно отказываться. Просто потому что они слишком дорого обходятся.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение alexs » 04.12.2017 12:12:26

wofs писал(а):Нифига не добавляется. лазутф8 зависит от лцл, а у него консоль.


Лазарус прекрасно позволяет создавать консольные приложения
Просто указать требуемый виджет - консоль.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4051
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Проблема с SQLQuery кирилица в тексе запроса.

Сообщение wofs » 04.12.2017 12:56:54

Лекс Айрин писал(а):Я специально перепроверил. LazUtf8 входит в состав пакета LazUtils, который никак не соотносится с LCL. Вообще, даже чисто теоретически.


jsa писал(а):Проект -> Инспектор проекта -> Правый клик по Требуемые пакеты -> Добавить -> ищем в Имя пакета LazUtils -> Создать новую зависимость.

Лекс Айрин писал(а):По возможности, аккуратнее с этой возможностью. Иначе потом могут выйти ошибки дублирования путей. Вообще, должно добавляться автоматически, когда добавляешь пакет в uses.

При всем уважении -противоречие.

Лекс Айрин писал(а):LazUtils, который никак не соотносится с LCL

Просто с ЛЦЛ добавляется путь до LazUtils, чего я не заметил.
alexs писал(а):Лазарус прекрасно позволяет создавать консольные приложения
Просто указать требуемый виджет - консоль.

Да, но у автора не было ни LCL, ни LazUtils.

Мой посыл в том, что не достаточно просто прописать в uses требуемый юнит, а нужно еще указать путь к требуемому юниту. Сделать можно разными путями и, указать требуемый пакет один из них.
И потом не понятно, о чем мы спорим. Я вам про Фому, а вы мне про Ерему...
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 13

Рейтинг@Mail.ru