Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.54 MB
Время: 0.036 c
14-1090860633
Art_Z
2004-07-26 20:50
2004.08.15
Два аргумента за Unix


1-1091309178
Ricks
2004-08-01 01:26
2004.08.15
Dump памяти программы


14-1090950265
Art_Z
2004-07-27 21:44
2004.08.15
Издательсво "Питер",серия "Для професионалов"


1-1091133724
nick_mas
2004-07-30 00:42
2004.08.15
Как в Form.Caption поместить текст с правой и левой стороны?


14-1091069425
Думкин
2004-07-29 06:50
2004.08.15
С днем рождения! 29 июля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский