Главная страница
    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
особенно мне нравится место про ваши предположения.... (тонкий намек)


 
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
8-1085863005
Dankin
2004-05-30 00:36
2004.08.15
Как скопировать какуюто часть изображения


14-1090716682
Soft
2004-07-25 04:51
2004.08.15
AI, для всех гикнутых хакеров на этом форуме.


1-1091558535
Zilog
2004-08-03 22:42
2004.08.15
Как по дате определить день недели?


1-1091423305
Марат
2004-08-02 09:08
2004.08.15
Ehlib


3-1090399338
Lefan
2004-07-21 12:42
2004.08.15
Как получить список БД из BDE?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский