- •Введение.
- •2. Приобрести практические навыки:
- •Овладеть:
- •2. Основная часть.
- •2.1. Базы данных.
- •2.2. Вход в Visual FoxPro.
- •2.3. Главное окно.
- •2.4. Системное меню.
- •2.5. Основное меню.
- •2.6. Стандартная панель инструментов.
- •2.7. Командное окно.
- •2.8. Выход из Visual FoxPro.
- •2.9. Диалоговое окно Options.
- •2.10. Таблицы.
- •2.11. Режимы просмотра таблицы
- •2.12. Поля таблицы.
- •2.13. Индексы.
- •2.14. Связывание таблиц.
- •2.15. Экспортирование данных.
- •2.17. Блокировка данных.
- •2.17.1. Типы блокировок.
- •2.17.2. Блокировка записей.
- •2.18. Использование буферов.
- •2.19. Использование транзакций.
- •2.20. Создание бд.
- •2.21. Создание проекта.
- •2.22. Создание отчета.
- •Индивидуальное задание.
- •3.1. Общая часть задания:
- •Система «Агенство недвижимости».
- •3.2. Создание таблицы.
- •Создание с помощью конструктора форм.
- •3.4. Создание отчета.
- •3.5. Просмотр подготовленного отчета.
- •3.6.Формирование запроса.
- •4. Заключение
- •5. Литература.
2.17. Блокировка данных.
2.17.1. Типы блокировок.
В Visual FoxPro можно использовать два типа данных: блокировку таблицы и записи.
Блокировка таблицы запрещает доступ другим пользователям ко всей
таблице, пока вы редактируете одну или несколько записей. Для установки блокировки изменений таблицы вы должны использовать функцию FLOCK, которая имеет следующий синтаксис: Flock ([псевдоним Таблицы])
C помощью функции блокировки проверяется текущий статус таблицы. Если в результате теста будет определено, что таблица не заблокирована, она блокируется, и пользователь может продолжать с ней. Функция при этом возвращает логическое значение .Т. (истина) и таблица становится доступной пользователю, выполнившему блокировку, для чтения и записи. Остальным пользователям таблица БД доступна только для чтения. Если таблица уже заблокирована другим пользователем, заблокировать таблицу не удается и функция возвращает значение .F. (Ложь). Для блокировки таблицы в текущей области можно не указывать псевдоним.
2.17.2. Блокировка записей.
При блокировке записи не допускаются изменения записи кем-либо, кроме пользователя, установившего блокировку. По возможности рекомендуется использовать блокировку отдельных записей, а не таблицы в целом. Заблокированная запись может изменяться только установившим блокировку пользователем, остальные пользователи имеют к ней доступ только чтения. Результат изменения записи будет виден другим пользователям только после снятия блокировки записи.
Для блокировки записей используются взаимосвязанные функции Lock и Rlock.
Для указания таблицы, записи которой вы собираетесь блокировать, можно использовать номер рабочей области или псевдоним таблицы. Если не указаны ни рабочая область, ни псевдоним, функция Lock будет блокировать текущую запись таблицы, открытой в рабочей области.
2.18. Использование буферов.
Одним из мощных средств организации многопользовательской работы в Visual FoxPro является средство буферизации данных, которое позволяет лучше использовать локальные ресурсы и снижает нагрузку на сеть. При буферизации все сделанные вами изменение хранятся в оперативной памяти
на рабочей станции и не обновляются на файл-сервере до тех пор, пока вы
не выполните соответствующую команду.
В Visual FoxPro используются два типа буферизации: буферизация таблиц и записей. При буферизации записей после завершения редактирования записи все изменения записываются в БД. При буферизации таблиц измененные данные сохраняются в БД только после закрытия таблицы или вызова функции TABLEUPDATE ().
2.19. Использование транзакций.
Под транзакцией в системах управления БД понимают последовательность нескольких операций, в процессе выполнения которых сохраняется целостное состояние БД. В процессе выполнения транзакции, обновляемые данные временно хранятся в памяти или на локальном диске. Действительные изменения совершаются только после завершения транзакции. Если что-либо препятствует обновлению данных, все изменения отменяются.
Для управления транзакциями используются три следующие команды:
- BEGIN TRANSACTION – Инициирует транзакцию.
- ROLLBACK – Осуществляет откат, т.е. аннулирует все выполненные в течение транзакции действия.
- END TRANSACTION – Завершает транзакцию и сохраняет все выполненные действия в БД.
В некоторых случаях вам может понадобиться использовать вложенные транзакции, при этом каждая из них должна начинаться командой BEGIN TRANSACTION и завершаться командой END TRANSACTION. Команда ROLLBACK применима только к транзакции, внутри которой она выполняется. Команды BEGIN и END TRANSACTION могут находиться в разных функциях и процедурах.