- •Настройка vfp
- •Состав vfp
- •Закрытие vfp
- •Создание таблиц
- •Создание таблицы в Мастере
- •Типы данных
- •Работа с таблицей
- •Введение данных в поля типа Memo и General
- •Структура команд sql
- •Создание таблицы в конструкторе
- •Создание таблицы командами sql
- •Удаление данных из таблицы
- •Поиск данных вне индексированной таблицы
- •Навигация по таблице
- •Индексы. Индексирование таблиц.
- •Создание индекса
- •Связи между таблицами
- •Поиск данных в индексированной таблице
- •Сортировка данных в таблице
- •Фильтрация данных
- •Установка фильтра по строкам
- •Запуск формы
- •Поиск данных средствами формы
- •Создание программного файла
- •Работа с переменными
- •Сохранение и восстановление переменных
- •Просмотр переменных
- •Типы переменных
- •Функции vfp
- •Математические функции
- •Функции даты и времени
- •Функции для работы с таблицей
- •Функции преобразования типов данных
- •Запросы к бд
- •Создание запроса мастером
- •Создание запроса по 2 таблицам средствами мастера
- •Создание запроса в конструкторе
- •Запрос в конструкторе по 2 таблицам
- •Создание отчета по 1 таблице в мастере
- •Создание отчетов в конструкторе
- •Файл проекта
- •Создание проекта в мастере
- •Создание меню
- •Организация интерфейса с пользователем
- •Модификация формы в конструкторе
- •Работа с окнами
- •События и методы
- •Обеспечение целостности и безопасности бд
- •Нормализация таблиц
Работа с окнами
При создании интерфейса пользователя возникает необходимость выводить информацию для пользователя. Информация может выводится в окно, которое определяется командой DEFINY WINDOW <имя окна> FROM <х1,у1>(левый верхний угол to <х2,у2>(правый нижний угол). В самом окне может выводится заголовок командой title ‘…’. Чтобы увидеть окно, используем команду
ACTIVATE WINDOW <имя окна>. Теперь любая информация выводится в созданное окно. Для удаления окна выбираем команду DEACTIVATE WINDOW <имя таблицы>. В VFP предусмотрена специальная функция, создающая окно, в которое можно выводить сообщения MESSAGEBOX(<текст сообщения>,<коды>,<заголовок>). Коды определяют внешний вид окна и вид кнопок:
0 – кнопка ОК
3 – кнопки ДА, НЕТ, ОТМЕНА
5 – повтор и отмена
Коды пиктограмм:
16 – СТОП
32 – Знак вопроса
48 – Восклицательный знак
64 – Символ информации
При щелчке по кнопке генерируется числовой код, который воспринимается и обрабатывается программой «привязанной» к данной кнопке. Коды кнопок:
ОК – 1
Отмена – 2
Да - 6
Нет – 7
События и методы
Событием является закрытие окна и т.д. Например щелчок по кнопке генерирует цифровой код – это событие. Программа, которая будет обрабатывать событие называется Метод.
Например можно с помощью form control создать кнопку, используя Command Button. Изменяя свойство Caption можно дать кнопке любое название. Двойной щелчок по кнопке открывает окно, в котором создается метод – программа, которая будет выполнятся при щелчке по кнопке.
Обеспечение целостности и безопасности бд
Целостность подразумевает наличие в БД всех данных, предусмотренных для хранения в БД. Нарушение целостности означает отсутствие каких-либо данных. Под достоверностью понимается соответствие данных, хранимых в БД состоянию объектов. БД , где нарушена целостность и достоверность не имеет практической ценности. Достоверность и целостность обеспечивается на 2 уровнях:
На уровне человеческого фактора: а) Организация доступа к БД только авторизованных пользователей. б) Для исключения ошибочного вноса или удаления данных привлекается 2 работник. в) Выполнять регулярное резервирование файлов таблиц и мемо файлов к ним.
Программные методы: создавая БД, нужно сделать работу с ней удобной(так меньше вероятность ошибок), то есть нужно создавать удобные формы, стандартные запросы и т.д., организовывая удобный интерфейс.
Для исключения попадания в таблицу заведомо неверных данных, создаются триггеры. В БД под триггером понимают небольшой программный код, который срабатывает при наступлении события. Триггер в зависимости от события выдает .T. или .F. В первом случае может выполнятся дальнейший программный код. Во втором случае последующие действия не выполняются и выводится сообщение об ошибке.
Программные методы могут использоваться на уровне таблицы или на уровне БД в целом.
На уровне таблицы в окне конструктора на вкладке Fields используется группа полей Field Validation. В поле Rule вписывается условие, выполнение которого будет проверятся триггером. Если условие не выполняется, будет выдаваться сообщение, которое вписывается в поле Message. Например имеется таблица «Магазин» а в ней поле «Цена». Магазин торгует товарами не дороже 100 рублей. Создадим триггер, который не позволит ввести в таблицу стоимость товара выше 100 рублей. Функция iif является аналогом функции типа if then. В поле Rule вписываем iif (magazine.price>100,.T.,.F.) и в поле Message пишем «Не свыше 100 рублей»
На уровне базы данных таблицы в БД связаны. Недопустима ситуация, когда из родительской таблицы данные удаляются, а в дочерней остаются данные, связанные с удаленной записью. Получается, что в таблице остаются сведения, которые неизвестно к чему относятся. Чтобы избежать этой и подобных ей неприятностей, в БД для связи между таблицами устанавливаются правила. Для изменения свойств связи выбираем в контекстном меню Edit Referential Integrity (Редактировать целостность связей). Откроется окно в котором 3 вкладки (Правила для обновления, удаления, вставки данных). Для каждой связи указаны имена таблиц и показано, какая таблица является родительской и какая дочерней. Для любой связи можно выбрать 1 из вариантов: Ignore (изменение данных в родительской таблице никак не скажется на дочерней), Cascade(изменения в родительской таблице вызывают автоматические изменения в дочерней), Restrict(запрещается заменять данные в родительской таблице, если в дочерней имеются связанные с ней записи).