77987

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

Лекция

Информатика, кибернетика и программирование

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

Русский

2015-02-05

65.5 KB

4 чел.

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

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

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

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

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

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

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

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

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

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

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

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

Название метода

Назначение

procedure First;

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

procedure Last;

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

procedure Next;

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

procedure Prior;

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

function MoveBy(n:Integer): Integer;

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

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

Чтобы изменить запись в НД, этот НД нужно перевести методом 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).

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

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

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

procedure TForm1.Button1Click(Sender: TObject);

begin

Table1.First;

end;

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

procedure TForm1.Button5Click(Sender: TObject);

begin

Table1.Last;

end;

// кнопка «Редактирование»

procedure TForm1.Button3Click(Sender: TObject);

var a: byte;

begin

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

if a=1 then

Table1.Edit;

end;

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

procedure TForm1.Button8Click(Sender: TObject);

begin

Table1.Insert;

end;

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

procedure TForm1.Button9Click(Sender: TObject);

begin

Table1.Delete;

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

end;

// кнопка «Отмена»

procedure TForm1.Button4Click(Sender: TObject);

var a: byte;

begin

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

if a=1 then

Table1.Cancel

end;

// кнопка «Сохранить»

procedure TForm1.Button7Click(Sender: TObject);

var a: byte;

begin

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

if a=1 then

Table1.Post;

end;

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

procedure TForm1.Button2Click(Sender: TObject);

begin

if Table1.Eof then

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

else

Table1.Next;

end;

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

procedure TForm1.Button6Click(Sender: TObject);

begin

if Table1.bof then

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

else

Table1.Prior;

end;

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


 

А также другие работы, которые могут Вас заинтересовать

18051. Краткосрочная финансовая политика предприятия. Учебное пособие 2.77 MB
  Н.М. Крюкова Учебное пособие. Содержание и значение финансовой стратегии фирмы. Определение целей и задач бизнеса. Содержание и порядок разработки финансовой политики фирмы. Что п...
18052. Основы радиации. Радиационное загрязнение территории РБ 599 KB
  1. Радиационное загрязнение территории РБ. Радиоактивность явл результатом процесса кот происх внутри ядер. НТР принесла чел не только технический прогресс но и истощение природных ресурсов загрязнение окр среды усиление техногенной экологической и природной опас
18053. Административно-процессуальное право: Курс лекций 1.11 MB
  Административно-процессуальное право: Курс лекций./ Сост.: В.В. Степанюк Орёл: Орловский юридический институт МВД России 2009 г. 172 с. В данном курсе лекций представлены конспекты лекций по первому разделу: Введение в административнопроцессуал
18054. ТИПИЧНЫЕ ОШИБКИ ПРИ НАЧИСЛЕНИИ НАЛОГОВ И СТРАХОВЫХ ВЗНОСОВ 2.87 MB
  ТИПИЧНЫЕ ОШИБКИ ПРИ НАЧИСЛЕНИИ НАЛОГОВ И СТРАХОВЫХ ВЗНОСОВ Ф.Н. Филина И.А. Толмачев Под редакцией Т.Н. Межуевой. НАЛОГ НА ПРИБЫЛЬ 1.1. Доходы В соответствии со ст. 41 Налогового кодекса РФ доходом признается экономическая выгода в денежной или натурал...
18055. Анализ деятельности коммерческого банка 1.36 MB
  Л.В. КОХ Ю.В. КОХ Анализ деятельности коммерческого банка Учебное пособие Раскрываются основные направления экономического анализа деятельности коммерческого банка. Рассматриваются вопросы анализа состояния и использования собственных и привлеченных средств...
18056. Організація, планування та управління підприємствами галузі: Конспект лекцій 1.35 MB
  Стахурський В.О. Організація планування та управління підприємствами галузі: Конспект лекцій для студ. напрямів 0902 Інженерна механіка 0905 Енергетика 0925 Автоматизація та компютерно-інтегровані технології всіх форм навчання. К. : НУХТ 2009. 113 с. АНОТАЦІЯ К
18057. Базы данных, учебное пособие 1.41 MB
  Базы данных Допущено Учебно-методическим объединением вузов по образованию в области автоматизированного машиностроения УМО АМ в качестве учебного пособия для студентов высших учебных заведений обучающихся по направлениям подготовки бакалавров и магистров.
18058. Проблемы подростковой адаптации с позиций профилактики и психотерапии личностных и поведенческих расстройств и зависимости от психоактивных веществ 1.06 MB
  Проблемы подростковой адаптации с позиций профилактики и психотерапии личностных и поведенческих расстройств и зависимости от психоактивных веществ М. 325 с. Вместо введения. История создания книги Психическая адаптация к требованиям социальной среды. Базисные ком...
18059. Практикум по арбитражному процессу 1.2 MB
  Практикум по арбитражному процессу Учебное пособие для студентов юридических вузов и факультетов Под редакцией доктора юридических наук профессора В. В. Яркова и кандидата юридических наук доцента С.Л. Дегтярева 2е издание переработанное и дополненное .: ...