Форум: "Начинающим";
Текущий архив: 2008.02.10;
Скачать: [xml.tar.bz2];
Внизчувствительность к регистру в SQL запросе... Найти похожие ветки
← →
AntonUSAnoV (2008-01-12 16:39) [0]Как сделать чтобы SQL запрос был не чувствителен к регистру ?
← →
sniknik © (2008-01-12 16:44) [1]ничего не делать. запрос и так не чувствителен к регистру!.
вот с данными хуже..., но и тут для многих sql серверов можно ничего не делать. главное выбрать правильный.
← →
Anatoly Podgoretsky © (2008-01-12 17:01) [2]> sniknik (12.01.2008 16:44:01) [1]
Не совсем так, можно постараться сделать чувствительным.
Но автор явно что то перепутал.
← →
__!ERIX_ (2008-01-12 17:05) [3]дествительно...
Подскажите как сделать чувствительным. Плиз. Спасибо
← →
Anatoly Podgoretsky © (2008-01-12 17:08) [4]> __!ERIX_ (12.01.2008 17:05:03) [3]
Ну например использовать Файрберд
← →
__!ERIX_ (2008-01-12 17:26) [5]а если делаетя запрос из delphi разве мне ФАЙРБЕРД поможет?
← →
sniknik © (2008-01-12 17:31) [6]какая разница из чего делать запрос? "чувствительность", и не только, проявляется в том в чем выполняется. ("из", "в" разные вещи однако)
← →
AntonUSAnoV (2008-01-12 17:35) [7]Не, я вот о чём: при помощи компонента Query пишу запрос типа
select *
from xxx.db
where
fam like %name%
order by fam
переменной name присваивается значение edita, где пользователю позволено вводить как прописные так и строчные буквы. Так вот как можно при выборке из БД сделать её(выборку) не чувствительную к регистру.?
← →
sniknik © (2008-01-12 18:52) [8]> Не, я вот о чём:
так тебе на то и отвечали, во многих sql серверах регистр в данных в таких запросах не учитывается (по умолчанию), и делать ничего не надо, так сойдет. а вон firebird привели как счастливое исключение из этого правила.
← →
AntonUSAnoV (2008-01-12 18:58) [9]А почему тогда у меня чувствителен:?
← →
sniknik © (2008-01-12 19:10) [10]ну наверное потому что ты используешь какойто регистрочувствительный движок...
открываешь справку по нему и ищешь функцию приведения строки к верхнему например регистру (нижний тоже пойдет), в запросе с fam используешь ее, а в программе name также приводишь к выбранному регистру при присвоении из edita. и все.
← →
Anatoly Podgoretsky © (2008-01-12 22:05) [11]
> __!ERIX_ (12.01.08 17:26) [5]
Ты опять пытаешься мусорить в чужой ветке.
Задай вопрос в своей
← →
Anatoly Podgoretsky © (2008-01-12 22:07) [12]> sniknik (12.01.2008 18:52:08) [8]
Я вообще то говорил о запросах, а не о результатов запроса.
Для результатов, надо соответствующий Location
← →
Anatoly Podgoretsky © (2008-01-12 22:08) [13]Про базу и ее локализацию мы наверно не узнаем.
← →
AntonUSAnoV (2008-01-13 14:25) [14]Не товарищи, всё проще: имеем приложение в делфи связанное через BDE с базой на Paradox . На форме лежит компонент Query SQL текст которого представляет собой следущее:
> select *
> from xxx.db
> where
> fam like %name%
> order by fam
значение для переменной name присваивается из edita, данные в БД хранятся с использованием и строчных и прописных букв, т.е. upper или lowercase я думаю не помогут...
← →
sniknik © (2008-01-13 14:45) [15]> т.е. upper или lowercase я думаю не помогут...
ну если ты так думаешь, то ... не думай!
← →
AntonUSAnoV (2008-01-13 15:35) [16]
> sniknik ©
а разве не так? ну допустим "Первенство" преобразуется в "первенство" а толку? в БД то хранится как "Первенство" ! ???
← →
sniknik © (2008-01-13 16:39) [17]> в БД то хранится как "Первенство" ! ???
ну так в условии значение поля тебе тоже сказали преобразовать в "первенство", вот и толк.
а ты прочитал ровно половину.
← →
AntonUSAnoV (2008-01-13 22:38) [18]Нееее .. в этом то и суть что мне хранить в БД данные надо с использованием и прописных и литерных букв, потому что потом эти данные пересылаются в Excel, в качестве заголовков для смет, ведомостей и др., где надписи типа "первенство россии" или "ПЕРВЕНСТВО РОССИИ смотрятся некрасиво (в контексте оформления документа)...
← →
sniknik © (2008-01-13 22:53) [19]> Нееее .. в этом то и суть что мне хранить в БД данные надо с использованием ...
читать умеешь? никто тебя в базе данные менять не заставляет, говорили "в условии запроса", при сравнении. ->
> ... в запросе с fam используешь ее ...
← →
AntonUSAnoV (2008-01-13 23:08) [20]Я гоню.. сорри, понял, только вот в самом SQL я не силён так что не знаю куда вставить lowercase, подскажите плиз..
← →
AntonUSAnoV (2008-01-13 23:11) [21]нашёл, всё равно спасибо..
← →
AntonUSAnoV (2008-01-13 23:54) [22]тут теперь вот какая ерунда : запрос выглядит так:
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-14 00:00) [23]Ха! причём если переделать всё на upper, то тоже самое только наоборот: "если в поле "Почему" , то при запросе "ПОЧЕМУ" тоже результата не будет, что за игнор буквы "Ч" ???
← →
sniknik © (2008-01-14 00:02) [24]"Ч" это ахиллесова пята BDE (и еще "Я" насколько помню)..., спроси АП, он расскажет (я слышал от него). может быть.
в принципе, когда обсуждали, были советы "поиграть" ланг драйвером (подобрать), но я так думаю это еще один повод отказаться от устаревшего ради нового... и даже нефиг решать.
← →
sniknik © (2008-01-14 00:13) [25]хотя, счас проверил, у меня все нормально и с "Ч" и с "Я", приводятся к нижнему регистру, ленг драйвер правда ""ascii" ANSI" (это "чисто виндовая без преобразований"), естественно и вносить надо данные в виндовой кодировке. пробовал на таблице версии 7.0.
но лучше всетаки взять движок поновее.
← →
Правильный_Вася (2008-01-14 11:17) [26]
> ленг драйвер правда ""ascii" ANSI"
для парадокса обычно используют pdox ansi cyrillic
← →
sniknik © (2008-01-14 11:39) [27]это просто "так исторически сложилось" т.к. парадоксные базы пришли из dos-а. никакой реальной необходимости сейчас поддерживать dos нет. (как и использовать парадокс)
кстати именно "pdox ansi cyrillic" и глючит с "Ч", и в том обсуждении про которое я упоминаю в [24] его как раз и советовали заменить на чтото другое, подобрать, например на аналог с dBase... пробуйте в общем, парьтесь, сами. я с вами в клуб мазохистов не записывался (хватило и того когда вынуждали по работе с ним сталкиваться).
← →
AntonUSAnoV (2008-01-14 15:42) [28]Ну у меня и стоит "ascii" ANSI
← →
sniknik © (2008-01-14 16:24) [29]> Ну у меня и стоит "ascii" ANSI
и это не гарантия..., это же парадокс. тебе же говорят, подбирать нужно, + только ленгдрайвер это еще не все, там еще вроде в самой таблице зашита указание кодировки, надо чтоб совпадало(либо чтото приоритет имеет)...
блин, порыскал бы ты по дайджестам, тем каким лет так 5-6-7 уже, когда парадокс активно обсуждался...
← →
Anatoly Podgoretsky © (2008-01-14 16:52) [30]Вопрос базы и движка автор усиленно игнорирует.
Но сейчас понятно, что движок БДЕ и языковой драйвер "ascii" ANSI, а это по определению нелюбовь к "Ч" и "я", не лечится.
← →
sniknik © (2008-01-14 17:15) [31]> а это по определению нелюбовь к "Ч" и "я", не лечится.
тем не менее у меня нормально... дома и на работе (перепроверил), файл один и тот же (слава богу не часто работать с форматом приходится... единственный).
почему так х.з.
← →
Anatoly Podgoretsky © (2008-01-14 20:30) [32]> sniknik (14.01.2008 17:15:31) [31]
Ты правда упоминал, что у тебя Д7, а по моей непроверенной информации эту проблему решили только в БДЕ поставляемой с 2006.
← →
sniknik © (2008-01-14 20:39) [33]точно, D7 но на работе 2006 ставил и снес потом (зря купили, 7-ки хватает) но дома то только D7 (на работе мог и остаться BDE новой версии).
скорее дело в таблице... чем ее создавали (прислана клиентами), и что там в заголовке прописано. (кстати посмотрел ленгдрайвер в таблице прописанный, старой програмкой, показывает "db866ru0" ... видать подбирали)
← →
tomkat (2008-01-14 22:19) [34]сделай, пожалуйста, так
select *
from xxx.db
where
upper(fam) like upper(%name%)
order by fam
и регистр параметра %name% не будет иметь значения....
если я вопрос правильно понял :-)
← →
sniknik © (2008-01-14 22:44) [35]> если я вопрос правильно понял :-)
вопрос правильно, проблему нет.
перечитай еще, что у него с "Ч" происходит (вернее не происходит).
← →
tomkat (2008-01-15 16:17) [36]
> перечитай еще, что у него с "Ч" происходит (вернее не происходит).
понял, SQL сервером там и не пахнет :-(
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.02.10;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.038 c