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


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

Наверх




Память: 0.61 MB
Время: 0.029 c
1-1091435090
Polevi
2004-08-02 12:24
2004.08.15
CreateEditor


1-1091102938
Andrew
2004-07-29 16:08
2004.08.15
Сохранение файла в Excel


6-1087293736
webpauk
2004-06-15 14:02
2004.08.15
Игры


4-1088757801
Ev-Genius
2004-07-02 12:43
2004.08.15
Образ CD диска


4-1088788023
Алексей
2004-07-02 21:07
2004.08.15
Многооконное приложение