Форум: "Базы";
Текущий архив: 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
особенно мне нравится место про ваши предположения.... (тонкий намек)
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.049 c