![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чувствительность к регистру в SQL запросе... [D7, XP]
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]> в БД то хранится как "Первенство" ! ???
ну так в условии значение поля тебе тоже сказали преобразовать в "первенство", вот и толк.
а ты прочитал ровно половину.