Выполнение операций с данными

Для изменения данных в источнике создан язык структурированных запросов (SQL, Structure Query Language). Инструкции на языке SQL позволяют выполнять действия по изменению данных, например — добавлять, изменять или удалять записи в таблице или запросе, выбирать набор записей из источника, удовлетворяющий заданному условию.

C помощью объектов DАО можно осуществлять всевозможные манипуляции с данными. Например, такие как:

В следующих примерах приведены приемы программного изменения данных в открытом наборе записей (программы 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.