- •Иллюстрированный самоучитель по Access 2002
- •Глава 1. Общие сведения о Microsoft Access 2002
- •Базы данных как средство хранения и обработки информации
- •Запуск Access и открытие баз данных
- •Создание новой базы данных
- •Рабочая среда Access
- •Использование справочной системы
- •Вызов окна справки
- •Глава 2 .
- •Основные режимы работы с таблицами
- •Создание таблиц
- •Определение полей
- •Свойства полей таблицы
- •Использование Мастера подстановок
- •Форматы отображения данных
- •Примеры:
- •Определение маски ввода
- •Вставка, удаление и переименование полей таблицы
- •Вод и проверка данных
- •Изменение внешнего вида таблицы
- •Сортировка данных в таблице
- •Поиск и замена данных
- •Фильтрация данных
- •Часть III.
- •Способы совместного использования баз данных
- •Пример сетевого приложения
- •Организация совместного доступа к данным и объектам
- •Организация обмена данными между компонентами сетевого приложения
- •Создание и использование рабочей области
- •Программа 16.1. Использование рабочей области Jet, открытой по умолчанию
- •Программа 16.2. Создание рабочей области Jet
- •Открытие источника данных
- •Программа 16.3. Открытие таблицы в текущей базе данных
- •Программное изменение структуры и схемы данных
- •Программа 16.4. Удаление и создание таблицы с помощью инструкций ddl
- •Программа 16.5. Изменение структуры таблицы с помощью интерфейса dао
- •Выполнение операций с данными
- •Программа 16.6. Добавление записи в таблицу
- •Программа 16.7. Изменение текущей записи в таблице
- •Программа 16.8. Удаление текущей записи в таблице
- •Программная синхронизация доступа к данным
- •Программа 16.9. Синхронизация записи изменений в источнике данных
- •Программа 16.10. Сделать паузу на заданное количество секунд в работе приложения
- •Выполнение транзакций
- •Программа 16.11. Применение механизма транзакций
- •Защита сетевого приложения Access
- •Защита базы данных на уровне пользователей
- •Рава доступа в приложении "Игра в доминирование"
- •Часть IV. Приложения
- •Правила игры в доминирование
- •Архитектура приложения
- •Функциональное описание приложения
- •Интерфейс пользователя
- •Установка сетевого приложения "Игра в доминирование"
- •Параметры защиты приложения "Игра в доминирование"
Программа 16.9. Синхронизация записи изменений в источнике данных
' Послать сообщение подключенному игроку
Public Sub SendMessage(message As String, playerName As String) .
' Объявления локальных объектных переменных:
Dim db As Database
Dim rs As Recordset
Dim counter As Integer
' Определяем собственную обработку ошибок:
On Error GoTo errHandler
Set db = CurrentDb
' Открываем таблицу сообщений для игрока:
Set rs = db.OpenRecordset("Сообщения", dbOpenDynaset)
On Error GoTo 0
' Добавляем сообщение в таблицу сообщений клиента:
rs.AddNew
rs!ИмяИгрока = playerName
rs!Сообщение = message
' Обработка ошибок, возникающих при совместном доступе
' к источнику данных:
On Error GoTo tryAgain
rs.Update
On Error GoTo 0
rs.Bookmark = rs.LastModified
' Закрываем открытые объекты:
closeAHHandler:
rs.Close
endHandler:
' Очищаем объектные переменные, т. к. они больше не используются:
Set rs = Nothing
Set db = Nothing
' Завершаем работу:
Exit Sub
' Синхронизация: tryAgain:
counter = counter + 1 If counter < 400 Then
doPause 5 Resume
End If
Обработка ошибок: errHandler:
Dim errMsg As String
errMsg = "Ошибка: " & Err.Number & vbCrLf & _
"Источник: " & Err.Source & vbCrLf & _ vbCrLf & Err.Description
MsgBox errMsg, vbCritical, ERR_TITLE Resume endHandler
End Sub
Программа 16.10. Сделать паузу на заданное количество секунд в работе приложения
Public Sub doPause(seconds As Integer)
Dim var_timeStart, var_timeCurrent
Dim ftimeOut As Boolean
var_timeStart = Time() ' Время начала паузы Do
' Передать управление другим процессам операционной системы
DoEvents
var_timeCurrent = Time() ' Текущее системное время
ftimeOut = _
CDate(var timeCurrent - var timeStart) >=
CDate(TimeSerial(0, 0, seconds))
Loop Until ftimeOut End Sub
Выполнение транзакций
Транзакцией называется операция обмена данными между клиентом и сервером. Методы объекта Workspace, использующиеся для выполнения транзакций, представлены в табл. 16.7.
Таблица 16.7. Методы объекта Workspace для выполнения транзакций
|
|
|
|
|
Метод |
Описание |
|
|
BeginTrans |
Обозначает начало транзакции. Транзакции могут быть вложенными |
|
|
CommitTrans |
Обозначает конец транзакции. В этот момент все изменения сохраняются в источнике без возможности их отмены |
|
|
RollBack |
Завершение транзакции и отмена результата ее выполнения. Записи в источнике возвращаются в прежнее состояние, отмеченное командой BeginTrans |
|
Все базы данных, открытые в рабочей области, имеют общую область действия транзакций. Это значит, что действие методов BeginTrans, CommitTrans и RollBack объекта Workspace распространяется на все базы данных в семействе Databases объекта Workspace.
Рассмотрим пример программы на VBA с использованием механизма выполнения транзакций (программа 16.11). В приложении "Игра в доминирование" механизм транзакций не используется.