Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

Вопрос по SQL   Найти похожие ветки 

 
Neo ©   (2008-01-28 13:56) [0]

Товарищи, как сделать запрос  SELECT то-то FROM того-то WHERE то-то нечувствитеьным к регистру?


 
Palladin ©   (2008-01-28 13:58) [1]

чего-то like того-то


 
tomkat   (2008-01-28 13:59) [2]

запрос вообще-то и так не чествителен к регистру
SELECT то-то FROM того-то WHERE  =
select
...
from
....
where
.....


 
tomkat   (2008-01-28 14:01) [3]

если ты имел ввиду, что не чуствительным к регистру значения ПАРАМЕТРОВ
то так и скажи :-)


 
Sergey13 ©   (2008-01-28 14:01) [4]

> [0] Neo ©   (28.01.08 13:56)

Надо сделать инъекцию, переводящую и то и это к одному регистру.


 
homm ©   (2008-01-28 14:05) [5]

> [4] Sergey13 ©   (28.01.08 14:01)
> Надо сделать инъекцию,

Может лучше сделать коньюкцию? %)


 
Neo ©   (2008-01-28 14:09) [6]

нет, в том то и дело что чувствителен - запрос типа "SELECT COUNT(*) FROM "+TabName+" WHERE "+Request+" = ADUM14" и такой же самый только в конце пишем скажем Adum14, дают разные результаты, которые правильны оба, поскольку в базе встречается и так и так пишут - и верхним и нижним регистром... вот и я хочу сдлать чтобы было нечувствительно к регистру. Оператор же LIKE находит похожее, но все равно учитывает регистр - уже проверил.


 
tomkat   (2008-01-28 14:12) [7]

where upper(Request)=upper("ADUM14")
а вообще-то нада запрос с параметрами использовать
where upper(Request)=upper(:param)


 
Sergey13 ©   (2008-01-28 14:13) [8]

> [5] homm ©   (28.01.08 14:05)

Лишь бы не фрикцию или фелляцию. 8-)


 
Neo ©   (2008-01-28 14:27) [9]

> tomkat   (28.01.08 14:12) [7]
> where upper(Request)=upper("ADUM14")

Это же просто приводит к тому, что ищется в верхнем регистре и все... а мне нужно чтобы искало и в нижнем и в верхнем и комбинированно,т.е. чтобы, скажем, запросы adum14, ADUM14 и Adum14 воспринимались одиннаково.


 
tomkat   (2008-01-28 14:29) [10]


> Это же просто приводит к тому, что ищется в верхнем регистре
> и все

!!!! дак у тебя ВСЕ значения поля приводятся к верхнему регистру ! ВСЕ !!!
и ты сравниваеш с образцом тоже в верхнем регистре ...


 
Palladin ©   (2008-01-28 14:29) [11]

в сад


 
Neo ©   (2008-01-28 14:37) [12]

Товрищи, прога делается для бухов, у бухов там в полный финиш в смысле этих чертовых регистров.


> !!!! дак у тебя ВСЕ значения поля приводятся к верхнему
> регистру ! ВСЕ !!!
> и ты сравниваеш с образцом тоже в верхнем регистре ...


может оно итак, но только если брать запрос adum14, то будет искаться количество именно adum14. а надо чтобы все вместе - и adum14 и ADUM14 и Adum14.


 
tomkat   (2008-01-28 14:46) [13]

ты не вериш ?
ты попробуй !
вот как думаеш, что вернет функция UPPER(adum14) ? а UPPER(Adum14) ?


 
Neo ©   (2008-01-28 15:03) [14]


> вот как думаеш, что вернет функция UPPER(adum14) ? а UPPER(Adum14)
> ?


Конечно возвращает то, что должна возвращать - то же самое что при запросе ADUM14. т.е. это ф-ия уравнивает запросы adum14, Adum14 и ADUM14 единственно к верхнему регистру, т.е. к ADUM14. А вот если искать как раньше - получается что при запросах Adum14 и adum14 результаты иные, чем когда использовать UPPER...


 
Anatoly Podgoretsky ©   (2008-01-28 15:04) [15]

> Neo  (28.01.2008 14:37:12)  [12]

Чукча не читатель.


 
tomkat   (2008-01-28 15:05) [16]


> А вот если искать как раньше

так не нада :-)


 
homm ©   (2008-01-28 15:14) [17]

> [14] Neo ©   (28.01.08 15:03)

Подними руки чуть выше туловища, начни сводить их вместе. Вскоре на их пути встретится некий шарообразный волосатый предмет. Это башка. В ней находится мозг. Попробуй использовать его при очередном фтыкании в одну единственную строчку кода из [7].

Помимо указанного способа можно еше указать формат регистронечувствительный для полей, по котрым производится поиск, или использовать функцию, специально-оговоренно-регистро-нечувствительную. Все зависит от возможностей твоего SQL сервера.


 
altatr ©   (2008-01-28 17:09) [18]

В моей программе работает так (компонент Query) может подойдет...

          SQL.Add("SELECT NAME"); // по каким полям будем делать выборку
          SQL.Add("FROM ":AUTOBASE:voditeli.dbf""); // в какой базе данных и таблице будем искать
          SQL.Add("WHERE");
          SQL.Add("(UPPER (NAME)= ""+ f +"")") // сравниваем поле NAME с переменной f

Переменной f присвоить значение какогонибудь EDITa у которого в свойстве CharCase  проставить ecUpperCase. Или самому писать все заглавными буквами. Какими будут буквы в поле NAME - всеравно. Программа будет видеть их все заглавными.


 
Amoeba ©   (2008-01-28 17:28) [19]


> Neo ©   (28.01.08 15:03) [14]
>
>
> > вот как думаеш, что вернет функция UPPER(adum14) ? а UPPER(Adum14)
> > ?
>
>
> Конечно возвращает то, что должна возвращать - то же самое
> что при запросе ADUM14. т.е. это ф-ия уравнивает запросы
> adum14, Adum14 и ADUM14 единственно к верхнему регистру,
>  т.е. к ADUM14. А вот если искать как раньше - получается
> что при запросах Adum14 и adum14 результаты иные, чем когда
> использовать UPPER...

Надо же быть таким дубом после того как тебе неоднократно все разжевали и в рот положили.


 
ketmar ©   (2008-01-28 17:34) [20]

>[17] homm ©(28.01.08 15:14)
>Это башка. В ней находится мозг.
оптимист.



Страницы: 1 вся ветка

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
15-1201059535
Slider007
2008-01-23 06:38
2008.02.24
С днем рождения ! 23 января 2008 среда


2-1201491838
Shpux
2008-01-28 06:43
2008.02.24
Закрыть приложение - Excel


15-1200905088
Washington
2008-01-21 11:44
2008.02.24
WMI SDK


2-1201890405
Urvin
2008-02-01 21:26
2008.02.24
Вторая копия приложения в CodeGear


15-1200834722
Piter
2008-01-20 16:12
2008.02.24
WEB - как стандартный интерфейс программы?