Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

чувствительность к регистру в SQL запросе... [D7, XP]


Страницы:   1 2

AntonUSAnoV ©   (2008-01-12 16:39:00) 

Как сделать чтобы SQL запрос был не чувствителен к регистру ?


tomkat   (2008-01-15 16:17:00) [1]


> перечитай еще, что у него с "Ч" происходит (вернее не происходит).

понял, SQL сервером там и не пахнет :-(


sniknik   (2008-01-14 22:44:00) [2]

> если я вопрос правильно понял :-)
вопрос правильно, проблему нет.
перечитай еще, что у него с "Ч" происходит (вернее не происходит).


tomkat   (2008-01-14 22:19:00) [3]

сделай, пожалуйста, так
select *
from xxx.db
where
upper(fam) like upper(%name%)
order by fam

и регистр параметра %name% не будет иметь значения....
если я вопрос правильно понял :-)


sniknik   (2008-01-14 20:39:00) [4]

точно, D7 но на работе 2006 ставил и снес потом (зря купили, 7-ки хватает) но дома то только D7 (на работе мог и остаться BDE новой версии).

скорее дело в таблице... чем ее создавали (прислана клиентами), и что там в заголовке прописано. (кстати посмотрел ленгдрайвер в таблице прописанный, старой програмкой, показывает "db866ru0" ... видать подбирали)


Anatoly Podgoretsky   (2008-01-14 20:30:00) [5]

> sniknik  (14.01.2008 17:15:31)  [31]

Ты правда упоминал, что у тебя Д7, а по моей непроверенной информации эту проблему решили только в БДЕ поставляемой с 2006.


sniknik   (2008-01-14 17:15:00) [6]

> а это по определению нелюбовь к "Ч" и "я", не лечится.
тем не менее у меня нормально... дома и на работе (перепроверил), файл один и тот же (слава богу не часто работать с форматом приходится... единственный).
почему так х.з.


Anatoly Podgoretsky   (2008-01-14 16:52:00) [7]

Вопрос базы и движка автор усиленно игнорирует.
Но сейчас понятно, что движок БДЕ и языковой драйвер 'ascii' ANSI, а это по определению нелюбовь к "Ч" и "я", не лечится.


sniknik   (2008-01-14 16:24:00) [8]

> Ну у меня и стоит 'ascii' ANSI
и это не гарантия..., это же парадокс. тебе же говорят, подбирать нужно, + только ленгдрайвер это еще не все, там еще вроде в самой таблице зашита указание кодировки, надо чтоб совпадало(либо чтото приоритет имеет)...

блин, порыскал бы ты по дайджестам, тем каким лет так 5-6-7 уже, когда парадокс активно  обсуждался...


AntonUSAnoV   (2008-01-14 15:42:00) [9]

Ну у меня и стоит 'ascii' ANSI


sniknik   (2008-01-14 11:39:00) [10]

это просто "так исторически сложилось" т.к. парадоксные базы пришли из dos-а. никакой реальной необходимости сейчас поддерживать dos нет. (как и использовать парадокс)

кстати именно "pdox ansi cyrillic" и глючит с "Ч", и в том обсуждении про которое я упоминаю в [24] его как раз и советовали заменить на чтото другое, подобрать, например на аналог с dBase... пробуйте в общем, парьтесь, сами. я с вами в клуб мазохистов не записывался (хватило и того когда вынуждали по работе с ним сталкиваться).


Правильный_Вася   (2008-01-14 11:17:00) [11]


>  ленг драйвер правда "'ascii' ANSI"

для парадокса обычно используют pdox ansi cyrillic


sniknik   (2008-01-14 00:13:00) [12]

хотя, счас проверил, у меня все нормально и с "Ч" и с "Я", приводятся к нижнему регистру, ленг драйвер правда "'ascii' ANSI" (это "чисто виндовая без преобразований"), естественно и вносить надо данные в виндовой кодировке. пробовал на таблице версии 7.0.

но лучше всетаки взять движок поновее.


sniknik   (2008-01-14 00:02:00) [13]

"Ч" это ахиллесова пята BDE (и еще "Я" насколько помню)...,  спроси АП, он расскажет (я слышал от него). может быть.
в принципе, когда обсуждали, были советы "поиграть" ланг драйвером (подобрать), но я так думаю это еще один повод отказаться от устаревшего ради нового... и даже нефиг решать.


AntonUSAnoV   (2008-01-14 00:00:00) [14]

Ха! причём если переделать всё на upper, то тоже самое только наоборот: "если в поле "Почему" , то при запросе "ПОЧЕМУ" тоже результата не будет, что за игнор буквы "Ч" ???


AntonUSAnoV   (2008-01-13 23:54:00) [15]

тут теперь вот какая ерунда : запрос выглядит так:
query1.SQL[0]:='select *';
    query1.SQL[1]:='from ":Теннис:sorevnovania.db"';
    query1.SQL[2]:='where';
    query1.SQL[3]:='(lower(name) like "%'+ename+'%")';

в ename буквы уже тоже lower, и вот что я заметил: если в значении поля name таблицы sorevnovania.db присутствует буква "Ч" то через SQL она не делается lower , запрос типа :"чемпионат" будет не успешен при значении поля name "Чемпионат", буква "Ч" не уменьшится...


AntonUSAnoV   (2008-01-13 23:11:00) [16]

нашёл, всё равно спасибо..


AntonUSAnoV   (2008-01-13 23:08:00) [17]

Я гоню.. сорри, понял, только вот в самом SQL я не силён так что не знаю куда вставить lowercase, подскажите плиз..


sniknik   (2008-01-13 22:53:00) [18]

> Нееее .. в этом то и суть что мне хранить в БД данные надо с использованием ...
читать умеешь? никто тебя в базе данные менять не заставляет, говорили "в условии запроса", при сравнении. ->
> ... в запросе с fam используешь ее ...


AntonUSAnoV   (2008-01-13 22:38:00) [19]

Нееее .. в этом то и суть что мне хранить в БД данные надо с использованием и прописных и литерных букв, потому что потом эти данные пересылаются в Excel, в качестве заголовков для смет, ведомостей и др., где надписи типа "первенство россии" или "ПЕРВЕНСТВО РОССИИ смотрятся некрасиво (в контексте оформления документа)...


sniknik   (2008-01-13 16:39:00) [20]

> в БД то хранится как "Первенство" ! ???
ну так в условии значение поля тебе тоже сказали преобразовать в "первенство", вот и толк.
а ты прочитал ровно половину.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо