Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.046 c
3-1090388844
RavenD
2004-07-21 09:47
2004.08.15
Блокирует ли FireBird записи?


14-1091016756
Kreogen
2004-07-28 16:12
2004.08.15
Помогите с конфигурацией


14-1090481423
CHES
2004-07-22 11:30
2004.08.15
пример использования интерфейсов


4-1088615195
Андрюшенька
2004-06-30 21:06
2004.08.15
Добавить свой ITEM в PopUpMenu WINDOWS


14-1091171658
ИдиотЪ
2004-07-30 11:14
2004.08.15
Что вас больше достает в работе?