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

Вниз

как организовать сортировку в БД по полю   Найти похожие ветки 

 
JEK2   (2006-02-19 15:00) [0]

Подскажите как организовать сортировку в БД по полю TL
Тип поля TL -alpha, данные примерно такие
34567
24865
34568
53487
34569
Требуется например после ввода в Edit1.Text текста-"34 "получить результат
34567
34568
34569
Делаю так, но выдает не тот результат который хотелось бы увидеть :(

procedure TForm1.Edit1Change(Sender: TObject);
begin
 Query1.Close;
 Query1.SQL.Clear;
 Query1.SQL.Add("SELECT * FROM B_ALL.DB");
 Query1.SQL.Add("WHERE TL >= ""+Edit1.Text+""");
 Query1.Open;
end;

Если сделать Тип поля TL -LongInteger тогда ваще не пойму как такую сортировку организовать :(


 
Desdechado ©   (2006-02-19 15:05) [1]

1. это не сортировка, это отбор данных
2. если поле текстовое, то используй LIKE
3. если поле числовое, то приводи его к текстовому, иначе "на подобие" не сравнить
4. используй параметры

например, для числового поля:
Query1.SQL.Add("SELECT * FROM B_ALL.DB");
Query1.SQL.Add("WHERE CAST(TL AS VARCHAR(20)) LIKE :P1");
Query1.Params[0].AsString:=Trim(Edit1.Text)+"%";


 
JEK2   (2006-02-19 17:50) [2]

Большое спасибо.
Еще один глупый вопрос.
Другие поля БД типа VARCHAR и каждая запись поля начинается с заглавной буквы. Как сделать регистронезависимую выборку.
Например поле содержит слово "Водитель" ,в Edit1.Text вводим "водиТель" и выбираются записи "Водитель","водитель","водИтель"
Нашел только описание UPPER LOWER типа
WHERE UPPER(POLE) = "ВодИтель"  но это не подходит, так как не все данные полей начинаются с Заглавных букв!


 
Anatoly Podgoretsky ©   (2006-02-19 18:36) [3]

Во первых логическое противоречие
каждая запись поля начинается с заглавной буквы
не все данные полей начинаются с Заглавных букв

Во вторых какая разница, раз сделать регистронезависимую выборку.
В третьих от модератора, новая тема - новая ветка


 
Desdechado ©   (2006-02-19 19:16) [4]

http://delphimaster.net/view/2-1140364604/


 
Desdechado ©   (2006-02-19 19:18) [5]

> WHERE UPPER(POLE) = "ВодИтель"  но это не подходит
В примере я тебе показал использование LIKE.
Так в чем вопрос? Подумать сложно?



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

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

Наверх




Память: 0.46 MB
Время: 0.01 c
15-1139682940
alexdid
2006-02-11 21:35
2006.03.05
VMWARE windows xp prof sp2


2-1139850113
YK
2006-02-13 20:01
2006.03.05
Какие ещё библиотеки??? И в чем дело??


2-1140073355
nap<>
2006-02-16 10:02
2006.03.05
Как получить поле


2-1139950387
Kot_
2006-02-14 23:53
2006.03.05
Составление индекса по символьному и цифровому полю


2-1140177446
zx__
2006-02-17 14:57
2006.03.05
работа с модемом





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