Главная страница
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.48 MB
Время: 0.044 c
1-1138557975
Alik7107
2006-01-29 21:06
2006.03.05
Сдвиг image вправо в TComboBoxEx


2-1140099642
Andrey235
2006-02-16 17:20
2006.03.05
Как установить DelphiX?


1-1138447447
medvedenator
2006-01-28 14:24
2006.03.05
Очень тупой вопрос


1-1138870523
sally
2006-02-02 11:55
2006.03.05
Перемещение каталогов


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