Главная страница
    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
14-22841
vajo
2002-03-01 16:51
2002.04.08
Win XP


3-22574
Quaker
2002-03-15 11:55
2002.04.08
TDBGRID, TDBEDIT, Редактирование таблиц


14-22808
Дмитрий_Ч
2002-02-26 17:29
2002.04.08
SOS!!!


3-22608
{bas}
2002-03-18 18:31
2002.04.08
RX


3-22550
Dok_3D
2002-03-14 15:18
2002.04.08
Этот хитрый FOR XML AUTO .......





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский