Выполнение
операций с данными
Для изменения
данных в источнике создан
язык структурированных запросов
(SQL, Structure
Query Language). Инструкции на языке SQL позволяют выполнять действия по изменению
данных, например — добавлять, изменять или удалять записи в таблице или запросе,
выбирать набор записей из источника, удовлетворяющий заданному условию.
C
помощью
объектов DАО можно осуществлять всевозможные манипуляции с данными. Например,
такие как:
-
получение набора записей
из таблицы;
-
выполнение запроса SQL
для получения набора записей;
-
использование запроса,
сохраненного в базе данных в виде объекта;
-
использование набора
методов объекта Recordset, предоставляющего широкие возможности по обработке
данных: чтение, анализ и изменение данных без составления инструкций на языке
SQL.
В следующих
примерах приведены приемы программного изменения данных в открытом наборе записей
(программы 16.6—16.8). Переменная rs соответствует открытому набору записей
— объекту типа Recordset.
Программа
16.6. Добавление записи в таблицу
'
Добавляем сообщение в таблицу сообщений клиента
rs.AddNew
' Создание новой записи
rs!ИмяИгрока
= playerName ' Запись значения в поле ИмяИгрока
rs!Сообщение
= message ' Запись значения в поле Сообщение
rs.Update
' Сохранение изменений в источнике
rs.Bookmark
= rs.LastModified
'
Перемещение курсора на новую запись
Программа
16.7. Изменение текущей записи в таблице
'
Увеличиваем счет игрока, сделавшего ход
'
Делаем текущей запись, содержащую данные для нужного игрока
rs.FindFirst
"[ИмяИгрока] = '" & newPlayer & "'"
rs.Edit
' Переводим запись в режим правки
rs!Счет
= rs!Счет + newCount ' Изменяем значение поля Счет
rs.Update
' Сохраняем изменения
rs.Bookmark
= rs.LastModified ' Делаем измененную запись текущей
Программа
16.8. Удаление текущей записи в таблице
playerQueryCode
= rs!КодЗаявки ' Сохраняем параметры заявки
playerTrial
= rs!Значение ' во временных переменных
rs.Delete
' и удаляем заявку из таблицы
Для перемещения
по записям используются методы Move, MoveFirst, MoveNext, MovePrev, MoveLast
объекта Recordset. Метод MoveLast перемещает курсор на последнюю запись в наборе,
что приводит к загрузке в набор всех записей. После этого можно прочитать значение
свойства Count объекта Recordset. Оно будет соответствовать общему количеству
записей в наборе.
Замечание
Удаление записей
и объектов из базы данных приводит к тому, что файл базы данных становится
фрагментированным и место, занимаемое им на диске, используется нерационально.
Чтобы дефрагментировать файл базы данных, используют процедуру сжатия. Ее
можно выполнить с помощью команды
Сервис, Служебные программы, Сжать и
восстановить базу данных
(Tools, Database Utilities, Compact and Repair
Database) или программно — с помощью метода CompactDatabase объекта DBEngine.
Можно также установить флажок
Сжимать при закрытии
(Compact on Close)
в диалоговом окне
Параметры
(Options) (команда
Сервис, Параметры
(Tools, Options), вкладка
Общие
(General)), чтобы сжатие базы данных
проводилось автоматически при ее закрытии. Подробнее процедура сжатия описана
в гл. 20.
Содержание раздела
|