Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Вниз

использование 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
4-22891
Ewgenij
2002-02-05 20:22
2002.04.08
System Tray


1-22669
yar
2002-03-28 13:21
2002.04.08
Печать из TImage


1-22743
Stupid
2002-03-27 09:25
2002.04.08
Помогите срочно!!


14-22796
skywalker
2002-02-26 13:48
2002.04.08
Фортран


1-22717
Great
2002-03-25 19:34
2002.04.08
Так что, никто не знает ? Ttabsheet и Drag & Drop





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский