Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Наборы данных



Таблицы БД располагаются на диске и являются физическими объектами. Для операций с данными, содержащимися в таблицах, используются наборы данных. В терминах системы Delphi набор данных представляет собой совокупность записей, взятых из одной или нескольких таблиц БД. Записи, входящие в набор данных, отбираются по определенным правилам, при этом в частных случаях набор данных может включать в себя все записи из связанной с ним таблицы или не содержать ни одной записи. Набор данных является логической таблицей, с которой можно работать при выполнении приложения. Взаимодействие таблицы и набора данных напоминает взаимодействие физического файла и файловой переменной.

Замечание

В отличие от Delphi, многие СУБД вместо термина набор данных используют термины выборка или таблица.

В Delphi для работы с наборами данных служат такие компоненты, как Table И Query, КОТОрые ЯВЛЯЮТСЯ ПРОИЗВОДНЫМИ ОТ Класса TDBDataSet —

потомка класса TDataSet (через класс TBDEDataSet). Они имеют схожие с базовыми классами характеристики и поведение, но каждый из них имеет и свои особенности. Рассмотрим наиболее общие характеристики наборов данных.

Расположение БД, с таблицами которой выполняются операции, указывает свойство DatabaseName типа string. Значением свойства является имя каталога, в котором находится БД (файлы ее таблиц), или псевдоним, ссылающийся на этот каталог. Если для БД определен псевдоним (alias), то его можно выбрать через Инспектор объектов в раскрывающемся списке.

Замечание;

Желательно задавать имя БД через псевдоним. Это заметно облегчает перенос приложения и файлов БД в другие каталоги и на другие компьютеры, так как для обеспечения работоспособности приложения после изменения расположения БД достаточно изменить название каталога, на который ссылается псевдоним БД. Псевдоним можно создать с помощью программ Database Desktop или BDE Administrator.

Для компонента Table использование свойства DatabaseName является единственной возможностью задать местонахождение таблиц БД. Для компонента Query дополнительно можно указать в запросе SQL путь доступа к каждой таблице.

Замечание

При задании расположения БД программным способом набор данных предварительно необходимо закрыть, установив его свойству Active значение False. В противном случае генерируется исключительная ситуация. В зависимости от ограничений и критерия фильтрации один и тот же набор данных в разные моменты времени может содержать различные записи. Число записей, составляющих набор данных, определяет свойство RecordCount типа Longint. Это свойство доступно для чтения при выполнении приложения. Управление числом записей в наборе данных осуществляется косвенно — путем отбора записей тем или иным способом, например, с помощью фильтрации или SQL-запроса (для компонента Query).

Пример. Перебор всех записей набора данных.

var i: integer;

Tablel.First;

for i:= 1 to Tablel.RecordCount do begin

// Здесь можно расположить операторы, выполняющие

// обработку очередной записи

Tablel.Next;

end;

Перебор всех записей набора данных осуществляется в цикле, для чего переменная i цикла последовательно принимает значения от 1 до RecordCount. Перед началом цикла вызовом метода First выполняется переход к первой записи набора данных. В цикле для перехода к следующей записи вызывается метод Next.

Для локальных таблиц dBase или Paradox составляющие набор данных записи последовательно нумеруются, начиная с единицы. Номер записи в наборе данных определяет свойство RecNo типа Longint, которое доступно во время выполнения программы.

Номер текущей записи можно узнать, например, так:

Editl.Text:= IntToStr(Tablel.RecNo);

Замечание

При изменении порядка сортировки или фильтрации нумерация записей также изменяется.

Для таблиц Paradox свойство RecNo можно использовать для перехода к требуемой записи, установив в качестве значения свойства номер записи. Пример. Переход к записи с указанным номером.

Tablel.RecNo:= StrToInt(Editl.Text);

Здесь выполняется переход к записи, номер которой содержится в поле редактирования Editl. Эта запись становится текущей. Для выполнения операций с наборами данных используются два способа доступа к данным:

•навигационный;

• реляционный.

Навигационный способ доступа заключается в обработке каждой отдельной записи набора данных. Этот способ обычно используется в локальных БД или в удаленных БД небольшого размера. При навигационном способе доступа каждый набор данных имеет невидимый указатель текущей записи.

Указатель определяет запись, с которой могут выполняться такие операции, как редактирование или удаление. Поля текущей записи доступны для просмотра. Например, компоненты DBEdit и DBText отображают содержимое cоответствующих полей именно текущей записи. Компонент DBGrid указывает текущую запись с помощью специального маркера.

В разрабатываемом приложении навигационный способ доступа к данным МОЖНО реализовать, ИСПОЛЬЗУЯ ЛЮбоЙ ИЗ КОМПОНеНТОВ Table ИЛИ Query.

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





Дата публикования: 2015-02-18; Прочитано: 382 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...