Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопрос 13-18.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
157.89 Кб
Скачать

Вопрос 18 Поиск записей в нборе данных: последовательный поиск. Примеры использования данного вида поиска в приложениях Delphi для работы с бд .

В программах, работающих с базами данных, часто используют поиск данных. Для чего еще нужны базы данных, как не для этого? Самый простой, но в то же время и самый медленный, "тяжеловесный" поиск, это, пожалуй, последовательный перебор. Вы переходите на первую запись таблицы, создаете цикл, который длится до последней записи, и внутри этого цикла проверяете необходимое условие. Также можно делать и обратный перебор, от последней записи к первой. В таблице 3.1 приведены все свойства и методы наборов данных (ТТаЫе/ЛБОТаЫе, ТО^иегу/ЛВОО^иегу), которые могут быть использованы при организации последовательного перебора:

Таблица 3.1. Свойства и методы набора данных, которые могут быть задействованы при последовательном переборе_

Свойства и методы

Описание

Eof

Свойство логического типа. Принимает значение True, если достигнут конец таблицы, или если таблица пуста, и False в противном случае.

Bof

Свойство логического типа. Принимает значение True, если достигнуто начало таблицы, и False в противном случае.

Next

Метод. Делает текущей следующую запись набора данных.

Prior

Метод. Делает текущей предыдущую запись набора данных.

First

Метод. Делает текущей первую запись набора данных.

Last

Метод. Делает текущей последнюю запись набора данных.

Пример:

//перешли на первую запись: fDM.TLichData.First; //делать, пока не конец таблицы: while not fDM.TLichData.Eof do begin

if fDM.TLichData['<I>aMJuraH'] = 'Иванов' then

break; //нашли нужную запись, и вышли из цикла fDM.TLichData.Next; //иначе перешли на следующую запись end; //while

Как видно из примера, мы делаем прямой последовательный перебор от первой записи до последней. Получить или изменить значение нужного поля можно, указав имя поля в квадратных скобках после имени набора данных. Например:

Editl.Text := fDM.TLichData['<I>aMmraH']; //получили значение fDM.TLichData['<I>aMmraH']:= Editl.Text; //изменили значение

Приведенный пример поиска нужной записи допустим, если в таблице имеется не более сотни-другой записей, а условная проверка достаточно сложна. Но обычно программисты этот способ не используют, или используют только в крайнем случае. Далее рассмотрим другие способы поиска.