|
Платные хостинги
Раскрутка сайта
Книги по программированию
Выборка в TTable
- Выборка в TTable производится с помощью метода SetRange. Вот синтаксис:Код procedure TTable.SetRange(const StartValues, EndValues: array of const);highlightSyntax('delphiY5MGVj','delphi');У меня получалось задавать начальные и конечные значения для выборки для полей типа integer. То есть задавал диапазон. То поле являлось первичным ключом.Как вот можно сделать выборку, например, по имени человека? Сперва можно поле имён индексировать, иначе фильтровать не будет. А потом как быть. TQuery использовать не хочу, так как таблица одна.
- Пример:Код with Table1 do begin IndexFieldNames := 'Fam'; SetRangeStart; FieldByName('Fam').AsString:= 'А'; SetRangeEnd; FieldByName('Fam').AsString:= 'Г'; ApplyRange; end;highlightSyntax('delphiWU3MDl','delphi');приведет к тому, что доступными будут только записи сотрудников, фамилии которых начинаются с букв "А", "Б", "В".Если принципиально использовать именно SetRange то тогда так:Код with Table1 do begin IndexFieldNames := 'Fam'; SetRange(['А'],['Г']); end;highlightSyntax('delphihZWY1Zj','delphi'); Это сообщение отредактировал Cashey - 10.4.2004, 20:01
- Cashey А если мне надо вывести всех людей с фамилией Иванов?И ещё:Код IndexFieldNames := 'Fam';highlightSyntax('delphicwNzQ4','delphi');Это создаёт что-то вроде "виртуального индекса"?
- Нет, это работает с индексированными полями.Цитата А если мне надо вывести всех людей с фамилией Иванов?Для этих целей существует фильтр.
- Что за фигня?
- Это имя индексированного поля, в тестовой таблице, у тебя название поля может быть другим
- для локальных баз SetRange работает только с индексированными полями, которых может не быть. ещё один из вариантов, это использование Filtered и OnFilterRecord: последнее позволит руками делать любые проверки и либо включать запись в результирующий НД, либо нет.
- а ApplyRange разве не требуется.Очень удобно использовать событие таблицы "OnFilterRecord". В этом событии средсьвами Delphi, а не SQL или "Filter-выражениями" делаешь выборку, ведь это так удобно, хотя теряется быстроедействие. Но это ведь закон такой - скорость или качество.
- dsergey, для SetRange - нет.
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|