Навигационный способ доступа это

Навигационный способ доступа это

Файл: Тема 17. Способ доступа к данным навигационный и реляционный.pdf

Дисциплина: Базы данных

Добавлена: 20.10.2018

Просмотров: 344

Скачиваний: 13

Тема 17. Способ доступа к данным: навигационный и реляционный

Навигация в наборе данных – это перемещение тем или иным способом

от одной записи (текущей) к другой записи. В этом случае записи

обрабатываются по одной (позаписно). Такой способ доступа может

применяться для наборов данных Table (преимущественно) и Query локальных

баз данных. Навигационный доступ основан на использовании указателя

текущей записи, управляемом командами навигации.

Навигационный способ доступа позволяет:

вставлять и удалять записи,

Кроме этого, можно выполнять действия над таблицами в целом:

создавать, удалять, переименовывать таблицы, задавать режимы доступа к ним.

Эти операции лучше выполнять на этапе проектирования с помощью Database

Сортировка – упорядочение записей по возрастанию или убыванию

значения некоторого поля или набора полей. Сортировка набора данных Table

выполняется автоматически по текущему индексу. При смене индекса

производится автоматическое переупорядочение записей. Текущий индекс

задается свойством IndexName или IndexFieldNames.

Для перемещения в наборе данных используются методы:

First – к первой записи,

Next – к следующей,

Last – к последней,

Prior – к предыдущей,

MoveBy – переместиться на n записей от текущей.

for n:= 1 to Table1.RecordCount do

Свойство RecNo — номер текущей записи, BOF/EOF типа Boolean —

начало/конец набора данных.

предотвращения монополизации приложением процессорного времени

рекомендуется использовать метод Application.ProcessMessages.

Фильтрация – задание ограничений для отбираемых в набор данных

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

Фильтрация по выражению применяется к любым полям, в том числе и

неиндексированным. Фильтр задается свойством Filter типа TString.

индексированных полей, ведется индексно-последовательным методом.

Соответствующий индекс должен быть текущим.

Для включения и выключения фильтрации используются методы

и CancelRange. Методы SetRangeStart и SetRangeEnd

устанавливают нижнюю и верхнюю границу диапазона. Границы можно

изменить методами EditRangeStart и EditRangeEnd.

SetRangeStart; // начало диапазонов

FieldByName(‘fname1’).AsString:=’sstring1’; // начало для fname1

FieldByName(‘fname2’).AsString:=Edit1.Text; // начало для fname2

SetRangeEnd; // конец диапазона

FieldByName(‘fname1’).AsString:=’estring1’; // конец для fname1

ApplyRange; // включение фильтрации

Метод SetRange объединяет возможности методов SetRangeStart,

SetRangeEnd и ApplyRange.

Для поиска записей по заданным значениям полей используются методы

Locate и Lookup. Поля могут быть неиндексированными. Метод Locate ищет

запись с заданными значениями полей. Если таких записей несколько, то

указатель текущей записи устанавливается на первую из них. Если запись

найдена, метод возвращает true, иначе false.

Функция Lookup возвращает значения требуемых полей найденной

Поиск по индексным полям

Все поисковые поля содержатся в текущем индексе. Используются

методы: FindKey, SetKey, EditKey, GotoKey.

Метод FindKey ищет в наборе данных Table первую запись с указанными

значениями полей. Найденная запись становится текущей.

if not Table1.FindKey([Edit1.Text,Edit2.Text]) then

Методы SetKey, EditKey и GotoKey используются совместно. Они

заменяют метод FindKey.

Модификация набора данных

Модификация – редактирование, удаление и добавление записей. Для

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

набора данных Table и свойство RequestLive для набора данных Query. Для

Читайте также:  Тесты азиатский способ производства

проверки возможности изменения набора данных используется свойство

Редактировать можно только текущую запись. Необходимы следующие

Перевести набор данных в режим редактирования,

Изменить значения полей записи,

Подтвердить сделанные изменения или отказаться от них.

if Table1.CanModify then

Перевести набор данных в режим вставки,

Задать значения полей новой записи,

Подтвердить сделанные изменения или отказаться от них (Cancel).

Метод SetFields позволяет устанавливать значения сразу нескольких

Метод InsertRecord объединяет методы Insert и SetFields.

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

Реляционный способ доступа к данным

Реляционный доступ основан на операциях с группами записей и языке

SQL. Применяется к набору данных Query, рекомендуется для удаленных баз

данных. Текст запроса находится в свойстве SQL набора данных. Запрос можно

конструировать как на этапе проектирования приложения, так и на этапе

выполнения. Запрос выполняется при открытии набора данных.

Источник

Навигационный способ доступа это

Название работы: Навигационный доступ к данным в БД

Предметная область: Информатика, кибернетика и программирование

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

Дата добавления: 2015-02-05

Размер файла: 65.5 KB

Работу скачали: 22 чел.

Навигационный доступ к данным в БД

Существует два способа работы с записями в НД.

Способ, основанный на использовании операторов SQL, предполагает оперирование группами записей. Именно так работают SQL-операторы группового обновления НД UPDATE, INSERT, DELETE и выборки групп записей SELECT. Записи, удовлетворяющие некоторому условию, выдаются группами; даже если условию удовлетворяет только одна запись, считается, что в данном случае группа состоит из одной записи.

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

Понятие курсора набора данных . Под курсором набора данных понимается указатель текущей записи в конкретном наборе данных. Текущая запись — та запись, над которой в данный момент времени можно выполнять какие-либо операции (удаление, изменение, чтение значений, содержащихся в записи полей).

Существует 5 методов для изменения курсора НД, котрые представлены в таблице 27:

Определение начала и конца набора данных :

Свойство property BOF: Boolean;

Возвращает True, если курсор установлен на первую запись в наборе данных.

Свойство property EOF: Boolean;

Возвращает True, если курсор установлен на последнюю запись в наборе данных.

Таблица 27 – Методы изменения курсора

p rocedure First;

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

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

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

Читайте также:  Случайный способ формирования выборочной совокупности

Перемещает курсор на предыдущую запись в наборе данных.

function MoveBy(n:Integer): Integer;

Перемещает курсор на n записей к’концу набора данных (n > 0) или к началу набора (n

Изменение текущей записи

Чтобы изменить запись в НД, этот НД нужно перевести методом Edit из состояния dsBrowse в состояние dsEdit, затем произвести изменение значения одного или нескольких полей записи и использовать метод Post для запоминания измененной записи в НД. Post в данном случае при благополучном исходе переводит НД из состояния dsEdit в состояние dsBrowse.

Для отказа от запоминания измененной записи в НД используется метод Cancel. Он также переводит НД из состояния dsEdit в состояние dsBrowse.

Метод Edit. Редактирование записи должно быть разрешено (свойство property ReadOnly: Boolean; должно быть установлено в False). Помимо этого, могут быть запрещены для корректировки отдельные поля записи (когда свойство Readonly соответствующих компонентов TField установлено в True). Метод Edit может вызываться: программно, автоматически, когда пользователь в визуальном компоненте, связанном с НД, выполняет определенные действия. Вид этих действий зависит от визуального компонента.

Автоматический перевод набора данных в режим редактирования должен быть разрешен свойством AutoEdit соответствующего компонента DataSource (значение True).

Добавление новой записи .

Чтобы добавить новую запись в НД, нужно вызвать метод Insert для перевода НД из состояния dsBrowse в состояние dsEdit Затем производится присваивание значения одному или нескольким полям записи, после чего выполняется метод Post для запоминания новой записи в НД Post при благополучном исходе переводит НД из состояния dsEdit в состояние dsBrowse

Для отказа от запоминания новой записи в НД используется метод Cancel Он также переводит НД из состояния dsEdit в состояние dsBrowse.

Метод Insert. При добавлении записи изменение НД должно быть разрешено (свойство Readonly должно быть установлено в False). Помимо этого, могут быть запрещены для изменения отдельные поля записи (когда свойство Readonly соответствующих компонентов TField установлено в True). В этом случае в них нельзя ввести новые значения.

Метод Insert может вызываться: программно, автоматически, когда пользователь в визуальном компоненте, связанном с НД, предпринимает соответствующие действия. Для перехода в режим dslnsert в компоненте TDBGrid достаточно нажать на клавиатуре клавишу Insert или, находясь на последней записи НД, попытаться перейти на нижнюю, несуществующую запись. То же происходит при нажатии соответствующей кнопки связанного с данным НД компонента TDBNavigator,.

Метод procedure Append, аналогичен методу Insert, но он добавляет запись в конец набора данных, в то время как Insert добавляет ее после текущей записи.

Для индексированных НД применение метода Append приводит к тем же последствиям, что и применение метода Insert помещает новую запись не после текущей записи, а вслед за последней записью НД.

Запоминание изменений — метод Post .

Выполнение метода Post приводит к запоминанию изменений, сделанных в режиме добавления или изменения записи.

Если НД не находится в режиме dslnsert или dsEdit, применение Post приводит к возбуждению исключительной ситуации. Вызов Post зависит от способа, которым ранее был вызван метод Insert или Edit: программно; автоматически.

Читайте также:  Все способы нарастить мышцы

Post обычно вызывается автоматически, если пользователь предпринимает соответствующие действия, направленные на запоминание измененной записи в НД. Вид этих действий зависит от визуального компонента, связанного с НД. Например, для компонента TDBGrid, связанного с набором данных, это -переход к другой записи. Для НД, управляемого компонентом TDBNavigator, это — нажатие соответствующей экранной клавиши компонента TDBNavigator. Реже изменения в наборе данных, автоматически переведенном в режим редактирования, запоминаются путем программного вызова метода Post.

Метод Post, независимо от того, вызывается он программно или автоматически, может завершиться неудачно. Причиной этого могут послужить неверные значения в соответствующих полях записи.

В лучшем случае при возникновении препятствий для выполнения Post запись переводится в состояние, в котором НД находился до выполнения метода (dslnsert или dsEdit).

Отмена сделанных изменений — метод Cancel

Метод Cancel отменяет все изменения, сделанные в записи. Если НД находился в режиме добавления новой записи, запись в НД не добавляется. Если НД находился в режиме изменения записи, изменявшаяся запись в НД не записывается и данные в ней остаются в том состоянии, в котором они находились до перехода в режим dsEdit. Сам НД переводится в режим dsBrowse. Вызов Cancel зависит от способа, которым ранее был вызван метод Insert или Edit: программно; автоматически.

Cancel вызывается автоматически, если пользователь предпримет соответствующие действия, направленные на запоминание измененной записи в НД. Вид этих действий зависит от визуального компонента, связанного с НД. Например, для компонента TDBGrid, связанного с набором данных, это нажатие клавиши Esc. Для НД, управляемого компонентом TDBNavigator, это нажатие соответствующей экранной клавиши компонента TDBNavigator.

Удаление текущей записи в наборе данных реализуется методом Delete,

производиться: программно или автоматически, если это предусмотрено в том или ином компоненте. Так, в компоненте TDBGrid нажатие комбинации клавиш Ctrl + Del влечет за собой удаление записи, которое, в соответствии с опциями настройки TDBGrid, может выполняться как с запросом подтверждения, так и без него.

Пример: Осуществить работу в базе данных с помощью методов навигации и изменения (рисунок 58).

Разместить на форме компоненты: Table 1, DBGrid 1, DataSourse и подключить базу данных, а так же 9 компонент TButton (для навигации и изменения записей БД).

Для кнопок определить события OnClick :

// кнопка « На первую запись »

procedure TForm1.Button1Click(Sender: TObject);

// кнопка « На последнюю запись »

procedure TForm1.Button5Click(Sender: TObject);

procedure TForm1.Button3Click(Sender: TObject);

a:=MessageDlg(‘ Редактировать данную запись ‘,mtWarning,[mbYes,mbNo],0);

// кнопка « Добавление записи »

procedure TForm1.Button8Click(Sender: TObject);

// кнопка « Удаление записи »

procedure TForm1.Button9Click(Sender: TObject);

ShowMessage(‘ Запись удалена !!’);

procedure TForm1.Button4Click(Sender: TObject);

a:=MessageDlg(‘ Отменить действия ‘,mtWarning,[mbYes,mbNo],0);

procedure TForm1.Button7Click(Sender: TObject);

a:=MessageDlg(‘ Сохранить данные записи ‘,mtWarning,[mbYes,mbNo],0);

// кнопка «На следующую запись»

procedure TForm1.Button2Click(Sender: TObject);

if Table1.Eof then

ShowMessage(‘ Конец базы данных ‘)

// кнопка «На предыдущую запись»

procedure TForm1.Button6Click(Sender: TObject);

if Table1.bof then

ShowMessage(‘ Начало базы данных ‘)

Рис. 58 – Пример использования методов компоненты TTable

Источник

Оцените статью
Разные способы