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

Вниз

использование UPPER в SQL-запросах   Найти похожие ветки 

 
Siberia   (2002-03-11 17:43) [0]

пишу что-то типа:

str:="select * from table where UPPER(table_field) LIKE "%"+AnsiUpperCase(Edit1.Text)+"%";

DM.Query.SQL.Clear;
DM.Query.SQL.Add(str);
DM.Query.Open;

работает со всеми нужными полями, а вот с полями типа MEMO - не работает не фига ...

Подскажите - есть ли другие способы добиться того чего надо, или че вообще делать-та ...

плизззз ...))))


 
JibSkeart ©   (2002-03-11 18:56) [1]

Хммм на скольео мне известно
помойму ему не важен регист

так как я обычно делаю даже так

ну простой пример в SQL

select * from table where field="test"

а запись у меня тама "TEST" !!

или еше
select * from table where field like "%test%"
тоже самое !!

находит



 
Siberia   (2002-03-12 10:07) [2]

Хммммм ... А почему же у меня реагирует на регистр ...

Если запись, допустим, "Алена", то "але" - он уже при помощи LIKE не находит ... Может это настраивается как-то ... Или чета я в парадоксе ему не сказала?


 
kserg@ukr.net   (2002-03-12 12:45) [3]

Когда то и я с этим сталкивался - оказалось, что UPPER(MEMO) не работает.
Пришлось извращаться типа
...where MemoField LIKE "%АЛЕНА%" OR MemoField LIKE "%Алена%"
OR MemoField LIKE "%алена%"

Более красивого решения не нашел.


 
Johnmen ©   (2002-03-12 13:06) [4]

Думаю, что UPPER для национальной кодировки не работает
(так же, как и в IB) - надо извращаться...


 
data ©   (2002-03-12 13:14) [5]

2 Johnmen © (12.03.02 13:06)
>Думаю, что UPPER для национальной кодировки не работает
>(так же, как и в IB) - надо извращаться...

В ИБ для текстовых полей работает. Только при создании таблицы для текстовых полей нужно указывать COLLATE PXW_CYRL и на всякий случай CHARACTER SET WIN1251 (если вдруг он в целом для всей БД не указан).



 
Johnmen ©   (2002-03-12 13:21) [6]

>data ©
>В ИБ для текстовых полей работает. Только при создании таблицы >для текстовых полей нужно указывать COLLATE PXW_CYRL и на >всякий случай CHARACTER SET WIN1251 (если вдруг он в целом для >всей БД не указан).

И все это заради UPPER"а ?




 
data ©   (2002-03-12 17:17) [7]

2 Johnmen © (12.03.02 13:21)
Collate заради Upper"a. А что, это так сложно? ;-)


 
TYuri ©   (2002-03-12 19:53) [8]

Напиши вот так все должно заработать

str:="select UPPER(table_field) from table where table_field LIKE "%"+AnsiUpperCase(Edit1.Text)+"%";



 
Siberia   (2002-03-14 10:21) [9]

> TYuri © (12.03.02 19:53)

Это работает с одной таблицей, а если с двумя - то конструкция типа:

str:="select N.*,Upper(N1.*) from name N, name1 N1 where ...."

уже не работает ... ((



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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
1-22682
OlegG
2002-03-26 13:08
2002.04.08
TSpeedButton


3-22559
Mikeee
2002-03-14 09:49
2002.04.08
Общий титул на несколько колонок в DBGridEh


3-22547
ZDN
2002-03-15 09:59
2002.04.08
Помогите чайнику немытому связать два датасета, пожалуйста!


3-22531
mcmax
2002-03-14 10:54
2002.04.08
Помогите составить запрос с внешними объединениями


14-22834
Stan4Ever
2002-02-27 22:43
2002.04.08
Где можно скачатъ английские MP3 Files?