Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизMS SQL + ADO Найти похожие ветки
← →
just (2004-07-15 11:47) [0]Программно создается sql-запрос, где присутствуют русские буквы,
например: LIKE "%про%", ADOQuery на это не реагирует, понимает только латинский алфавит.
В Query Analyser все работает.
Вопрос такой: что делать?
← →
NAlexey © (2004-07-15 11:50) [1]>just (15.07.04 11:47)
Ты профайлером смотрел какой в точности запрос идет на сервер?
← →
just (2004-07-15 12:12) [2]>Ты профайлером смотрел какой в точности запрос идет на сервер?
Я загоняла запрос в Memo для проверки,
копировала этот запрос в Query Analyser - все ОК.
ADOQuery - нет.
В чем дело?
← →
NAlexey © (2004-07-15 12:28) [3]>just (15.07.04 12:12) [2]
А почему ты решила что в Query нет? Приведи текст запроса и примера. И то как ты решаешь что в Query нет.
← →
Nikolay M. © (2004-07-15 13:20) [4]1) Таки неплохо бы посмотреть профайлером, какой запрос идет на сервер.
2) У ADOConnection в Data Liknk properties/All есть параметры Auto translate, Current language и Locale identifier - чему они равны?
← →
just (2004-07-20 16:08) [5]1) Таки неплохо бы посмотреть профайлером, какой запрос идет на сервер.
2) У ADOConnection в Data Liknk properties/All есть параметры Auto translate, Current language и
Locale identifier - чему они равны?
1) смотрела, не помогло
2) Auto translate = true
Current language = ничего
Locale identifier = 2057
Дело все в том, что запросы типа " SELECT DISTINCT otdel.id_otd,otdel.otd_name,computer.id_comp,
computer.comp_name FROM otdel FULL OUTER JOIN computer ON otdel.id_otd = computer.id_otd WHERE
computer.comp_name LIKE "%AL%" " нормально воспринимается ADOQuery, а вот запрос типа
"SELECT DISTINCT otdel.id_otd,otdel.otd_name,computer.id_comp,
computer.comp_name FROM otdel FULL OUTER JOIN computer ON otdel.id_otd = computer.id_otd WHERE
computer.comp_name LIKE "%АЛ%" " - нет, т.е. ошибки не выдает, а результат запроса - пусто, понимаете?
Помогите кто-нибудь!
← →
bushmen © (2004-07-20 16:52) [6]Вставь строку
messagedlg(ADOQuery1.SQL.GetText, mtInformation, [mbOK], 0);
и посмотри, что выдается
← →
Nikolay M. © (2004-07-20 17:07) [7]
> Locale identifier = 2057
1049
?
← →
just (2004-07-20 17:14) [8]Вставь строку
messagedlg(ADOQuery1.SQL.GetText, mtInformation, [mbOK], 0);
и посмотри, что выдается
выдается нормальный sql-запрос, который нормально обрабатывается query analyser
1049
?
а что такого?
пробовала исправить, обратно возвращается 2047
Кстати, что он означает?
← →
Nikolay M. © (2004-07-20 17:26) [9]
> пробовала исправить, обратно возвращается 2047
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/indexsrv/html/ixqlang_6yer.asp
← →
just (2004-07-20 17:36) [10]Что за синтаксис такой странный?
AdoConnection.Properties("Locale Identifier") = 1033
← →
bushmen © (2004-07-20 17:40) [11]> Что за синтаксис такой странный?
Так это же MSDN
Попробуй так:
AdoConnection1.Properties.Item["Locale Identifier"].Value := 2047;
← →
just (2004-07-20 17:44) [12]Попробуй так:
AdoConnection1.Properties.Item["Locale Identifier"].Value := 2047;
а разве не 1049?
Пробовала 1049 - не помогло, все то же самое
← →
just (2004-07-20 17:46) [13]что означает это свойство?
← →
bushmen © (2004-07-20 17:46) [14]> а разве не 1049?
Да, конечно, я просто скопировал.
← →
just (2004-07-20 17:48) [15]что же делать?
← →
just (2004-07-20 17:59) [16]В msdn.microsoft.com/library/default.asp?url=/library/en-us/indexsrv/html/ixqlang_6yer.asp:
AdoCommand.Properties("SQL Content Query Locale String") = "GE"
А AdoCommand вообще обязателен?
← →
just (2004-07-20 18:13) [17]
AdoCommand1.Properties.Item["SQL Content Query Locale String"]:= "GE";
strLocale := Request.ServerVariable("HTTP_ACCEPT_LANGUAGE");
AdoCommand1.Properties.Item["SQL Content Query Locale String"] = strLocale;
1 и 3 строки - read-only properties, а во 2 строке он Request
не распознает, кстати что это?
← →
ZrenBy © (2004-07-20 18:29) [18]
declare @t table (A varchar(200))
insert into @t values("русский")
insert into @t values("qweqweq")
select A from @t where A like "%"+convert(varchar(200),0xF0F3F1F1)+"%"
← →
just (2004-07-21 14:08) [19]
select A from @t where A like "%"+convert(varchar(200),0xF0F3F1F1)+"%"
Это не помогло и не поможет, т.к. дело не в Sql, а в delphi
в c++ Builder 5 - все нормально
в delphi - tools | translation tools options
вместо названий шрифтов (поле language) - вопросы (пр. - "?????")
Переустановка delphi 7 не помогла
В чем может быть проблема?
← →
just (2004-07-21 14:09) [20]причем в c++ Builder 5 Locale Identifier = 2047
← →
sniknik © (2004-07-21 14:22) [21]> Это не помогло и не поможет, т.к. дело не в Sql, а в delphi
странно, у меня в дельфи все в порядке...
>select A from @t where A like "%"+convert(varchar(200),0xF0F3F1F1)+"%"
а код до этого? он же тебе готовый кусок для провекри дал. а ты из него значит кусок вырвал и говориш не помогает и не может. да?
> Переустановка delphi 7 не помогла
настройки в системе на русский лучше сделай, чтобы вопросиков не было.
← →
Ega23 © (2004-07-21 14:27) [22]" SELECT DISTINCT otdel.id_otd,otdel.otd_name,computer.id_comp,
computer.comp_name FROM otdel FULL OUTER JOIN computer ON otdel.id_otd = computer.id_otd WHERE
computer.comp_name LIKE "%AL%" " нормально воспринимается ADOQuery,
"SELECT DISTINCT otdel.id_otd,otdel.otd_name,computer.id_comp,
computer.comp_name FROM otdel FULL OUTER JOIN computer ON otdel.id_otd = computer.id_otd WHERE
computer.comp_name LIKE "%АЛ%" " - нет, т.е. ошибки не выдает, а результат запроса - пусто, понимаете?
Так может просто в БД таких записей нету, а? :о)
← →
just (2004-07-21 14:31) [23]>Так может просто в БД таких записей нету, а? :о)
есть, конечно
← →
Ega23 © (2004-07-21 14:34) [24]Select * from computer where comp_name LIKE "%АЛ%"
Что выдаёт в QA и из-под клиента?
← →
Nikolay M. © (2004-07-21 14:34) [25]А поле в таблице не юникодное?
И все-таки сделай что-нибудь, чтобы Locale identifier стало правильным.
← →
just (2004-07-21 14:35) [26]>а код до этого? он же тебе готовый кусок для провекри дал. а ты из него значит кусок вырвал и говориш не помогает и не может. да?
использовала весь код
>настройки в системе на русский лучше сделай, чтобы вопросиков не было.
настройки и так русские
в builder же все ок
← →
just (2004-07-21 14:40) [27]>Что выдаёт в QA и из-под клиента?
выдает нужную выборку
>А поле в таблице не юникодное?
тип поля varchar
>И все-таки сделай что-нибудь, чтобы Locale identifier стало правильным.
я делаю это программно (оно устанавливается в 1049 - теперь я знаю что это), но хоть бы хны
← →
sniknik © (2004-07-21 14:42) [28]> есть, конечно
тогда
LIKE "%"+convert(varchar(2), 0xC0CB)+"%"
обязано сработать (для "АЛ")
← →
Ega23 © (2004-07-21 14:54) [29]Т.е. вот такой запрос Select * from computer where comp_name LIKE "%АЛ%" из на клиенте, и в QA проходит ОДИНАКОВО, ты это хочешь сказать?
← →
just (2004-07-21 14:56) [30]>Т.е. вот такой запрос Select * from computer where comp_name LIKE "%АЛ%" из на клиенте, и в QA проходит ОДИНАКОВО, ты это хочешь сказать?
Откуда мне знать, какой запрос приходит в QA?
Я просто копирую его туда
← →
just (2004-07-21 14:58) [31]>LIKE "%"+convert(varchar(2), 0xC0CB)+"%"
обязано сработать (для "АЛ")
не работает даже в QA
← →
Ega23 © (2004-07-21 15:06) [32]just (21.07.04 14:56) [30]
Блин, объясняю на пальцах:
1.
в твой AdoQuery.Sql введи текст:
Select * from computer where comp_name LIKE "%АЛ%"
Потом настрой грид на этот Query и запусти программу.
2.
Этот же запрос выполни в QA
3. Сравни результаты запросов.
← →
sniknik © (2004-07-21 15:06) [33]> не работает даже в QA
значит его там нет.
найди руками что там должно быть по твоему и скопируй сюда, только по технологии пасте/копи(!!!!) а не набором прям сдесь (потому как это будет твоя догадка а не реальность).
← →
just (2004-07-21 15:10) [34]>ega32 и sniknik
я так и делаю!!!!!!
← →
Ega23 © (2004-07-21 15:16) [35]я так и делаю!!!!!!
Ты выполнила ИМЕННО ЭТОТ ЗАПРОС:
Select * from computer where comp_name LIKE "%АЛ%"
?
На клиенте и в QA?
И каков результат?
← →
sniknik © (2004-07-21 15:17) [36]> я так и делаю!!!!!!
что?????
нам то дай убедится, приведи пример вместе с искомыми данными по описаной в [33] технологии. или непонятно спросил?
← →
just (2004-07-21 15:19) [37]таков, что в гриде - пустая строка, а в аналайзере - выборка
Это точно!
Со шрифтами проблемы именно в delphi, по-моему
← →
Ega23 © (2004-07-21 15:21) [38]Со шрифтами проблемы именно в delphi, по-моему
ПРИ ЧЁМ ЗДЕСЬ ШРИФТЫ??????????
← →
Ega23 © (2004-07-21 15:23) [39]И, кстати, к одной-ли ты базе коннектишься? Или к разным?
← →
sniknik © (2004-07-21 15:26) [40]ззззззззз......
вот почитай
http://raccoon.kiev.ua/faq/smart-questions-ru.html
особенно мне нравится место про ваши предположения.... (тонкий намек)
← →
just (2004-07-21 15:28) [41]>И, кстати, к одной-ли ты базе коннектишься? Или к разным?
MS SQL SERVER 200
На другом компе все ок и это мне порядком надоело
переустанавливаю ОС...
>особенно мне нравится место про ваши предположения.... (тонкий намек)
не издевайся, пож-ста
← →
Ega23 © (2004-07-21 15:33) [42]>И, кстати, к одной-ли ты базе коннектишься? Или к разным?
MS SQL SERVER 200
К БАЗЕ, не к серверу, и не к типу сервера, а к БАЗЕ!
У меня несколько вариантов одной и той же по структуре базы, только данные разные. Бывает, что ConnectionString настроен к одной, ODBC алиас - ко второй, а QA смотрит на 3-ю.
← →
sniknik © (2004-07-21 15:34) [43]> На другом компе все ок и это мне порядком надоело
так на других говориш (только сейчас) работает? отверни до места когда я про локальные настройки говорил, перечитай.
> не издевайся, пож-ста
не начал еще. (но уже трудно сдерживатся ;о))
← →
Ega23 © (2004-07-21 15:34) [44]переустанавливаю ОС...
Заодно снеси Сервер, разбей молотком винт и выброси монитор.
И НИКОГДА НЕ ЗАНИМАЙСЯ ПРОГРАММИРОВАНИЕМ!
← →
just (2004-07-21 15:45) [45]извините, люди, если достала очень
но программирование не брошу - я только начинаю
что касается винта, то он у меня FUJITSU - скоро и так помрет
← →
Ega23 © (2004-07-21 15:52) [46]что касается винта, то он у меня FUJITSU - скоро и так помрет
:о)
извините, люди, если достала очень
Просто тебе про Фому, а ты - про Ярёму.
ОС переставлять не нужно, нужно разобраться в чём дело. Если у тебя есть желание, то могу ещё раз по шагам попытаться понять, что у тебя происходит. Только без самодеятельности.
← →
Nikolay M. © (2004-07-21 16:08) [47]Все-таки меня гложет тот факт, что у тебя Locale такой кривой.
В Regional settings какой location указан?
Если русский, тогда уже точно ничего не поможет :( Сносить дельфи, винду, разделы винта, винт отформатировать низкоуровнем форматом, перепрошить биос.
← →
just (2004-07-21 16:18) [48]Люди!!!
Поздравьте - у меня Panda вирус нашла!
Все теперь нормально.
Приношу свои извинения всем принимающим участие.
← →
bushmen © (2004-07-21 16:22) [49]> Поздравьте - у меня Panda вирус нашла!
> Все теперь нормально.
Не надо сразу на Delphi пинять :)
← →
just (2004-07-21 16:23) [50]Technical name: BAT/Batalia6
Threat level: Low
Type: Virus
Effects: It carries out damaging actions on the affected computer.
Affected platforms: Windows 2003/XP/2000/NT/ME/98/95
First appeared on: May 22, 1996
In circulation? No
← →
just (2004-07-21 16:27) [51]>Nikolay M.
Locale теперь не кривой
← →
Nikolay M. © (2004-07-21 16:43) [52]Круто. Чтобы из-за вируса LIKE не работал - это реально круто :)
← →
Ega23 © (2004-07-21 16:46) [53]Круто. Чтобы из-за вируса LIKE не работал - это реально круто :)
Там всё-таки не совсем LIKE не работал. Там какие-то настройки ADOшные могли слетать.
← →
Nikolay M. © (2004-07-21 18:34) [54]
> Ega23 © (21.07.04 16:46) [53]
> Круто. Чтобы из-за вируса LIKE не работал - это реально
> круто :)
>
> Там всё-таки не совсем LIKE не работал. Там какие-то настройки
> ADOшные могли слетать.
Да это понятно, но если рассматривать только причину и такое следствие :)
← →
Ega23 © (2004-07-21 18:40) [55]Да это понятно, но если рассматривать только причину и такое следствие :)
Это точно. Такого я ещё не встречал.
← →
just (2004-07-22 07:42) [56]Этот BAT/Batalia6 много еще чего сделал (как обнаружилось впоследствие) - например, письма (русские) на E-mail"е открывались по-корявому, как не меняла кодировку, удалил какие-то фонты и некоторые системные файлы.
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.042 c