Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Внизкак организовать сортировку в БД по полю Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c