Первичными данными для БД является таблица «Авторы», таблица «Страны» и таблица «Книги». Существует несколько методов для ввода данных в таблицы, например, можно вводить данные, используя команду append в окне CommandWindow, можно воспользоваться мастером создания форм, который создает необходимые для этого средства. В данной работе для ввода первичных данных было решено использовать самостоятельно созданы формы и вручную прописывать код работы с таблицами.
Рассмотрим формы ввода всех трех таблиц.
Форма ввода данных таблицы «Авторы»
Код, используемый для работы с таблицей:
Активация формы
close tables all
*Открыли таблицу
use authors
*В начало
go top
*Выбор начальных данных для отображения в элементах управления
thisform.lname.value=lname
thisform.aname.value=name
thisform.mname.value=mname
thisform.birth_date.value=birth_date
dimension a(1)
*Находим по связи нужное значение
select countries.country from data1!countries,data1!authors;
where countries.id_c=authors.id_c AND;
authors.lname = thisform.lname.value and;
authors.name = thisform.aname.value and;
authors.mname = thisform.mname.value;
into array a
*Найденное значение – в элемент управления
thisform.country.value=a(1)
Нажатие кнопки «Предыдущий»
*Проверки на то, если мы на первой записи таблицы
if recno() > 1 and id_author!=1 then
skip -1
*Поместили найденные значения в элементы управления
thisform.lname.value=lname
thisform.aname.value=name
thisform.mname.value=mname
thisform.birth_date.value=birth_date
dimension a(1)
*Находим значение по связи
select countries.country from data1!countries,data1!authors;
where countries.id_c=authors.id_c AND;
authors.lname = thisform.lname.value and;
authors.name = thisform.aname.value and;
authors.mname = thisform.mname.value;
into array a
*Найденное значение – в элемент управления
thisform.country.value=a(1)
endif
Нажатие кнопки «Следующий»
*Проверки на последнюю запись в таблице
if recno() < reccount() then
skip
*Поместили найденные значения в элементы управления
thisform.birth_date.value=birth_date
thisform.lname.value=lname
thisform.aname.value=name
thisform.mname.value=mname
dimension a(1)
*Находим значение по связи
select countries.country from data1!countries,data1!authors;
where countries.id_c=authors.id_c AND;
authors.lname = thisform.lname.value and;
authors.name = thisform.aname.value and;
authors.mname = thisform.mname.value;
into array a
*Найденное значение – в элемент управления
thisform.country.value=a(1)
endif
Нажатие кнопки «Добавить»
dimension b(1)
*Находим максимальный индекс
select max(id_author) from authors into array b
*Добавляем 1, тем самым обеспечивая уникальность (аналог типа autoincrement в *СУБД Paradox и DBase)
c = b(1)+1
dimension a(1)
*Нашли индекс страны
select countries.id_c from data1!countries,data1!authors;
where countries.country= thisform.country.value;
into array a
*Добавили пустую запись
append blank
*Заменили ее теми данными, которые находятся в элементах управления
replace id_c with a(1)
replace id_author with c
replace lname with thisform.lname.value
replace name with thisform.aname.value
replace mname with thisform.mname.value
replace birth_date with thisform.birth_date.value
Нажатие кнопки «Удалить»
*Помечаем запись на удаление
delete
*Отматываем на одну назад
if (id_author!=1)
skip -1
*Отображаем запись
thisform.birth_date.value=birth_date
thisform.lname.value=lname
thisform.aname.value=name
thisform.mname.value=mname
dimension a(1)
select countries.country from data1!countries,data1!authors;
where countries.id_c=authors.id_c AND;
authors.lname = thisform.lname.value and;
authors.name = thisform.aname.value and;
authors.mname = thisform.mname.value;
into array a
thisform.country.value=a(1)
endif
*Физически удаляем запись
pack
Нажатие кнопки «Просмотр»
Browse
Нажатие кнопки «Назад»
thisform.release()
*Вызываем главную форму
do form main
Форма ввода данных таблицы «Страны»
Код, используемый для работы с таблицей:
Активация формы
use
use countries
go top
thisform.country.value=country
Нажатие кнопки «Предыдущий»
if recno() > 1 and id_c!=1 then
skip -1
thisform.country.value=country
endif
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.