77987

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

Лекция

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

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

Русский

2015-02-05

65.5 KB

5 чел.

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

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

Способ, основанный на использовании операторов 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


 

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

39990. Автоматизированные информационные системы 959.15 KB
  Автоматизированные информационные системы для студентов специальности Автоматизированные системы обработки информации и управления дневной формы обучения.. Понятие автоматизированной информационной системы. Структура автоматизированной информационной системы. Понятие и виды моделей информационной системы.
39991. Предмет, содержание, методы и задачи информационного менеджмента и маркетинга 99.5 KB
  Широкая информатизация всех сфер жизнедеятельности общества принципиально изменяет роль информации и информационных технологий в социальном и экономическом развитии страны. В таких условиях особое значение приобретают проблемы подготовки квалифицированных специалистов в области менеджмента и маркетинговой деятельности способных работать в условиях развитой информатизации насыщения производства и непроизводственной сферы всевозрастающими потоками информации и управления ими. В бизнесе управлении и маркетинге как ни в какой другой сфере...
39992. Инвестиционный менеджмент 287 KB
  Понятие и содержание инвестиционного проекта. Жизненный цикл инвестиционного проекта и подходы к его структуризации. Основные принципы оценки эффективности инвестиционного проекта. Особенности оценки эффективности на разных стадиях разработки и осуществления проекта.
39993. Логистика 83 KB
  Основная задача и функциональные области логистики. Основная задача логистики. Экономический эффект от использования логистики. Подобный подход к изучению производственнохозяйственной деятельности предприятий возник на Западе в 20е 30е годы ХХго столетия и развиваясь сформировался в самостоятельное направление научнопрактической деятельности получившей название логистики.
39994. Корпоративное управление 109.5 KB
  Пoд кopпopтивным yпpвлeниeм в кциoнepныx oбщecтвx пoнимeтcя cиcтeм oтнoшeний мeждy opгнми yпpвлeния и дoлжнocтными лицми эмитeнт влдeльцми цeнныx бyмг кциoнepми влдeльцми oблигций и иныx цeнныx бyмг ткжe дpyгими зинтepecoвнными лицми тк или инчe вoвлeчeнными в yпpвлeниe эмитeнтoм кк юpидичecким лицoм. К oблcти кopпopтивнoгo yпpвлeния oтнocятcя вce вoпpocы cвязнныe c oбecпeчeниeм эффeктивнocти дeятeльнocти кoмпнии и c зщитoй интepecoв ee влдeльцeв в тoм чиcлe peгyлиpoвниe внyтpeнниx и внeшниx pиcкoв. Оcнoвнoй экoнoмичecкoй пpичинoй...
39995. Исследование систем управления 206 KB
  Объeкт иccлeдoвния этo coвoкyпнocть cвязeй oтнoшeний и cвoйcтв cyщecтвyющя oбъeктивнo и cлyжщя иcтoчникoм нeoбxoдимoй для иccлeдoвтeля инфopмции пpeдмeт кoнкpeтня пpoблeм peшeниe кoтopoй тpeбyeт пpoвeдeния иccлeдoвний; тип иccлeдoвния пpиндлeжнocть eгo к oпpeдeлeннoмy типy oтpжющeмy cвoeoбpзиe вcex xpктepиcтик; пoтpeбнocть иccлeдoвния cтeпeнь ocтpoты пpoблeмы пpoфeccиoнлизм в пoдxoдx к ee peшeнию cтиль yпpвлeния; peзyльтт иccлeдoвния peкoмeндции мoдeль фopмyл мeтoдик cпocoбcтвyющиe ycпeшнoмy pзpeшeнию пpoблeмы...
39996. Стандартизация и менеджмент качества 357 KB
  Стандартизация и менеджмент качества Содержание темы: 1. Стандартизация качества одна из основных составляющих менеджмента. Системы стандартизации качества менеджмента. Основные термины стандартизации качества менеджмента.
39997. Менеджмент продаж и управление продажами 567.5 KB
  Менеджмент продаж и управление продажами Содержание темы: 1. Менеджмент продаж. Основы менеджмента продаж. Нейролингвистическое программирование НЛП в продажах.
39998. Применение методологии информационного менеджмента 97 KB
  Концепция информационного менеджмента объединяет следующие подходы: экономический рассматривающий вопросы привлечения новой документированной информации исходя из соображений полезности и финансовых затрат; аналитический основанный на анализе потребностей пользователей в информации и коммуникациях; организационный рассматривающий информационные технологии в их влиянии на организационные аспекты; системный рассматривающий обработку информации на основе целостного системно ориентированного всеохватывающего процесса обработки информации в...