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


 

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

39201. Имидж дальнего востока в блогах и социальных сетях 374 KB
  Определить смысл понятия «имидж региона» в качестве социального феномена. Определить элементы формирования территориального имиджа. Описать особенности формирования имиджа Дальнего Востока России. Описать место интернета в современных условиях и его место в социальной коммуникации. Определить смысл понятий «блог» и «социальная сеть».
39202. Огляд ринку комп’ютерної техніки 62.61 KB
  За його результатами у третьому кварталі 2011 року продаж стаціонарних комп’ютерів збільшився на 41 а ноутбуків на 64 порівняно до показника попереднього кварталу. В поточному році експерти очікують зростання продажів ноутбуків і планшетних комп’ютерів. Сезонний попит За результатами дослідження GfK Ukraine у ІІІ кварталі 2011 року продаж стаціонарних комп’ютерів збільшився на 41 порівняно з показником попереднього кварталу.
39204. Семья как социальный институт, ее исторические типы, функции 16.11 KB
  Специфика социологического изучения семьи заключается в том, что семья рассматривается как особый социальный институт, выполняющий одну из самых важных функций общества - воспроизводство его членов и осущестляющий их первичную социализацию.
39205. Основы истории и философии науки 181.35 KB
  Основы истории и философии наукИ Часть 1. Основы философии науки: лекционно курс Учебнометодическое пособие для аспирантов очной и заочной форм обучения СОКРАЩЕННЫЙ ВАРИАНТ Содержание Пояснительная записка. Курс лекций: Основы философии науки. ОБЩИЕ ПРОБЛЕМЫ ФИЛОСОФИИ НАУКИ.
39206. РЕКОМЕНДАЦИИ ПО ОФОРМЛЕНИЮ СТУДЕНЧЕСКИХ РАБОТ СОЦИАЛЬНО-ЭКОНОМИЧЕСКОГО НАПРАВЛЕНИЯ 264.5 KB
  При выполнении работы выбирается шрифт Times New Roman размером № 14 интервал 15. Опечатки описки и графические неточности обнаруженные в процессе выполнения работы допускается исправлять закрашиванием белым штрихом и аккуратным нанесением на том месте исправленного текста черной пастой гелем. Все подписи на титульном листе следует выполнять строчными буквами название темы работы – прописными буквами размер шрифта – 14. ПОСТРОЕНИЕ РАБОТЫ Текст работы разделяют на разделы и подразделы.
39207. Право собственности 753 KB
  Кроме того в регулируемых маркетинговым законодательством отношения могут участвовать Российская Федерация субъекты Российской Федерации и муниципальные образования.;6 маркетинговые союзы и ассоциации например Ассоциация распространителей финансовоэкономической информации;7 органы власти осуществляющие функции государственного регулирования маркетинговой деятельности например Министерство Российской Федерации по антимонопольной политике и поддержке предпринимательства Госстандарт России. Кроме того в регулируемых маркетинговым...
39208. Прохождение практики в Филиале Центрального АКБ «Инвестбанк» (ОАО) 195 KB
  В том числе клиентам предлагается большой выбор кредитных программ разнообразные формы денежных переводов как в рублях так и в иностранной валюте обслуживание банковских карт международных платежных систем а также варианты срочных валютных депозитов операции на валютном рынке и на рынке ценных бумаг. Кредитование при недостатке средств на расчетном счете овердрафт это особая форма краткосрочного кредита при котором Инвестбанк осуществляет оплату платежных документов клиента сверх средств имеющихся на его расчетном счете в пределах...