Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

План заняття. 1. Характеристика методів, які дозволяють програмно додавати, видаляти та редагувати записи набору даних




1. Характеристика методів, які дозволяють програмно додавати, видаляти та редагувати записи набору даних

2. Характеристика компоненту Table

 

Это занятие посвящено изучению методов, которые позволяют программно добавлять, удалять и редактировать записи набора данных.

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

Чтобы набор данных можно было изменять программным об­разом, он должен быть модифицируем. Это определяется значени­ем соответствующих свойств наборов данных.

Для компонента Table возможность модификации задается присвоением свойству Readonly значения False (по умолча­нию). Если данное свойство равно True, то любые изменения таблицы (как визуальные, так и программные) будут запрещены. Изменить значение этого свойства можно только при условии, что набор данных не активен в текущий момент времени. Другими словами, перед изменением свойства Readonly набор данных должен быть закрыт.

Свойство CanModify (Boolean) используется для того, что­бы в ходе выполнения приложения проверить, можно ли модифи­цировать набор данных. Это свойство доступно только для чте­ния. Если оно имеет значение True, то набор данных можно мо­дифицировать, в противном случае - модификация запрещена.

Существует также возможность запретить автоматический пе­реход в режим редактирования набора данных при работе пользо­вателя с визуальными компонентами, такими, как DBGrid или DBEdit. Для этого необходимо установить значение False свой­ству AutoEdit (тип Boolean) источника данных DataSource.

Метод Edit служит для перевода набора данных в режим ре­дактирования.

Метод Post записывает изменения, внесенные пользователем при редактировании. Данный метод автоматически вызывается при перемещении указателя текущей записи, например, с помощью ис­пользования методов First, Last, Next, Prior или MoveBy.

Метод Cancel позволяет отменить изменения, сделанные при редактировании до того момента, пока они не были сохранены с

помощью метода Post.

Метод SetFields (const Values: array of const)

используется для изменения значений всех или некоторых полей текущей записи. Параметр Values представляет собой массив зна­чений, которые присваиваются полям текущей записи. Порядок заданных значений соответствует порядку полей в наборе данных.. Если количество значений, заданных параметром Values, меньше числа полей набора данных, то эти значения присваиваются первым полям, а остальные поля не изменяются. Если же количество задан­ных значений превышает число полей, то при выполнении данного метода будет сгенерирована исключительная ситуация. Чтобы не изменять значение какого-либо поля, ему необходимо присвоить значение nil. В этом случае прежнее значение поля будет сохра­нено без изменения. Следует различать значения nil и Null. Если вместо nil будет указано Null, то поле будет изменено и получит значение Null. Редактирование записи с помощью данного метода может выглядеть примерно так: Tablel.Edit;

Tablel.SetFields('0284', 'Порошок стиральный', nil, 500);

При выполнении вышеприведенного кода первому полю записи присваивается значение «0284», второму полю - «Порошок стираль­ный», третье поле не изменяется, а четвертое получает значение 500.

После выполнения метода SetFields набор данных автома­тически переводится в режим просмотра.

Добавление записей имеет много общего с редактированием. Прежде всего, добавление новой записи может осуществляться только в 'том случае, если разрешена модификация набора данных. Подтверждение или отмена произведенных добавлений осуществ­ляется путем применения методов Post или Cancel соответст­венно.

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

Метод Insert переводит набор данных в режим вставки и добавляет пустую запись в позицию, на которой находится указа­тель текущей записи. После вызова данного метода необходимо заполнить поля новой записи. Это осуществляется с помощью метода SetFields. Для сохранения сделанных изменений вызы­вается метод Post.

Метод InsertRecord (const Values: array of const) вставляет новую запись в текущую позицию курсора и одновременно задает значения всех или некоторых ее полей.

Методы Append и AppendRecord абсолютно аналогичны методам Insert и InsertRecord соответственно. Единствен­ным отличием является то, что оба эти метода добавляют новую запись в конец набора данных, а не в позицию, на которую указы­вает курсор.

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

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

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

Для решения поставленной задачи, прежде всего, с помощью Database Desktop создается таблица, включающая такие поля: На­звание животного (Animal), Масса (Weight), Длина тела (Length).

На втором шаге создается главная форма приложения, на ко­торой размещаются соответствующие элементы управления (см. рис. 14.4).

 

 

Как видно из рис. 14.4, в верхней части формы расположен компо­нент DBGrid, в котором отображается содержимое таблицы БД. Ниже размещены три однострочных редактора Edit, в которые пользователь имеет возможность вводить новую информацию. Внизу формы нахо­дятся четыре кнопки. Кнопка Добавить обеспечивает добавление со­держимого однострочных редакторов в таблицу anim.db. При этом обязательным условием является то, что должны быть введены все данные, а длину и массу тела животного необходимо задавать в число­вом выражении. Если пользователь пытается добавить в список новую запись, а там уже имеются данные о таком животном, то выдается со­ответствующее сообщение и запись не добавляется.

Следует обратить внимание на то, что запись добавляется в конец таблицы с целью иллюстрации использования метода Ар- pendRecord. Специально для того чтобы увидеть результат дан­ного действия, индексирование в данной таблице не используется, и первичный ключ не задается, ибо в противном случае записи будут упорядочены и любая добавляемая запись будет тут же. ото­бражаться в таблице в соответствии с порядком индексирования (следовательно, тот факт, что запись добавляется в конец табли­цы, был бы вовсе не очевиден). Если же не задавать первичный ключ и не производить индексирование, то можно будет явным образом увидеть, что метод AppendRecord добавляет запись в конец таблицы.

Кнопка Вставить обеспечивает вставку новой записи в теку­щую позицию указателя в таблице. Это позволяет проиллюстри­ровать использование метода InsertRecord и наглядно пока­зать его отличие от метода AppendRecord. Увидеть это разли­чие также возможно только в том случае, если в таблице не применяется индексирование записей. Если же используется ка­кой-либо индекс, то для пользователя не будет заметна разница между использованием этих двух методов.

С помощью кнопки Изменить можно изменить текущую за­пись в соответствии с данными, содержащимися в полях редакто­ров Edit. На изменение данных накладываются те же ограничения, что и на добавление, кроме одного исключения. Изменение про­изводится только для текущей записи. При этом значение, запи­санное в поле редактора Editl (название животного), не учи­тывается, а просто производится изменение полей Weight и Length для той записи, на которую в текущий момент времени установлен указатель.

Кнопка Удалить позволяет удалить текущую запись.

Программную реализацию решения поставленной задачи мож­но видеть в листинге 14.1.

 

 

 

 

 

 

 

Данная программа не имеет большой практической ценности и носит иллюстративный характер с целью демонстрации использо­вания некоторых методов, позволяющих модифицировать набор данных.

 

Контрольні питання

1. Надати характеристику методів, які дозволяють програмно додавати, видаляти та редагувати записи набору даних

2. Охарактеризувати компонент Table

АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 6: ПРОГРАМУВАННЯ З ГРАФАМИ

ТЕМА 6.6: ОСНОВИ БАЗ ДАНИХ

 

Лекція №57 – Робота із зв’язаними таблицями




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 350; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.097 сек.