Задание:
Для модели
базы данных,
разработанной
в первой самостоятельной
работе [1], используя
DataBase
Desktop,
дать описание
системы соответствующих
таблиц локальной
базы данных
в формате Paradox7.
Структура
таблиц:
Таблица
AVTOR:
Код автора
(KOD)-ключевое,
автоинкрементное
поле;
Фамилия,
имя, отчество
(FIO)-строка
до 50 символов,
обязательного
заполнения;
Год рождения
(ROZD)
– строка до 4
символов с
маской “####”
Таблица
CIKL:
Код цикла
(KOD)-ключевое,
автоинкрементное
поле;
Название
цикла (NAZV)-
строка до 120
символов,
обязательного
заполнения;
Таблица
DISCIP:
Название
дисциплины(NAZV)-
строка до 120
символов,
обязательного
заполнения;
Код цикла
(KCIKL)
- содержит ссылку
на таблицу
подстановки
CIKL,
по полю KOD,
типа Long
Integer
(установлена
ссылочная
целостность);
Таблица
GRUP:
Код группы
(KOD)-ключевое,
автоинкрементное
поле;
Код
специальности
(KSP)
- содержит ссылку
на таблицу
подстановки
SPEC,
по полю KOD,
типа Long
Integer
(установлена
ссылочная
целостность);
Название
потока (POTOK)
- строка до 20
символов,
обязательного
заполнения;
Год
поступления
(GOD)
- строка до 4
символов с
маской “####”,
обязательного
заполнения.
Таблица
KNIGI:
Название
книги (NAZV)-
строка до 120
символов,
обязательного
заполнения;
Количество
книг (KOLICH)
– короткое
целое типа
SHORT;
Год издания
(GOD)
- строка до 4
символов с
маской “####”,
обязательного
заполнения.
Таблица
Recomend:
Код
рекомендации
(KOD)-ключевое,
автоинкрементное
поле;
На какой
семестр рекомендация
(SEMESTR)
- короткое целое
типа SHORT,
обязательного
заполнения;
Код книги
(KKNIG)
- содержит ссылку
на таблицу
подстановки
KNIGI,
по полю KOD,
типа Long
Integer
(установлена
ссылочная
целостность);
Код
специальности
(KSPEC)
- содержит ссылку
на таблицу
подстановки
SPEC,
по полю KOD,
типа Long
Integer
(установлена
ссылочная
целостность);
Код
дисциплины
(KDISC)
- содержит ссылку
на таблицу
подстановки
DISCIP,
по полю KOD,
типа Long
Integer
(установлена
ссылочная
целостность);
Таблица
SOOTV:
Код
соответствия
(KOD)-ключевое,
автоинкрементное
поле;
Код книги
(KKNIG)
- содержит ссылку
на таблицу
подстановки
KNIGI,
по полю KOD,
типа Long
Integer
(установлена
ссылочная
целостность);
Код автора
(KAVT)
- содержит ссылку
на таблицу
подстановки
AVTOR,
по полю KOD,
типа Long
Integer
(установлена
ссылочная
целостность);
Таблица
SPEC:
Код
специальности
(KOD)-ключевое,
автоинкрементное
поле;
Название
специальности
(NAZV)
- строка до 120
символов,
обязательного
заполнения;
Номер
специальности
(NOM)
- строка до 10
символов,
обязательного
заполнения;
Министерство
Образования
Российской
Федерации
Хабаровский
Государственный
Технический
Университет
Кафедра:
“Программного
обеспечения
ВТ и АС”
Лабораторная
работа №2
Тема:
“ Проектирование
системы экранных
форм для
ведения локальной
базы данных
”
Выполнил:
студент
группы ПО-02
Самойленко
П.Р.
Проверил:
к.т.н., доцент
Саринков
А.А.
Хабаровск
2002
Таблицы,
используемы
в экранных
формах
Создадим
систему экранных
форм для работы
со сложной
связью между
таблицами
«Книги» и «Авторы».
Данные таблицы
связываются
между собой
с помощью третьей
таблицы –
«Соответствие».
Таким образом,
один автор
может быть
привязан к
нескольким
книгам, в написании
которых он
принимал участие.
Связь между
таблицами можно
посмотреть
на схеме данных.
Связь книга->автор
Вид формы
на этапе проектирования:
Вид формы
работающего
приложения:
Содержимое
левой таблицы
меняется при
изменения
указателя в
правой таблице.
За это отвечает
процедура:
procedure
TSvaz.Table1AfterScroll(DataSet: TDataSet);
begin
query1.Close;
query1.Params[0].Value:=table1.FieldByName('KOD').AsInteger;
query1.Open;
end;
Например
при переходе
на следующую
запись мы меняем
значение параметра
“par”
у компонента
Query1
на значение
поля “KOD”
текущей записи
компонента
table1.
Сам текст
запроса Query1:
select
*
from
AVTOR
where
kod in(
select
kavt
from SOOTV
where
kknig=:par )
Для навигации
по названиям
книг можно
пользоваться
компонентом
«DBNavigator», который
привязан к тому
же набору что
и DBGrid1(левая
таблица). Для
добавления
и удаления
автора надо
пользоваться
кнопками «Добавить»
и «Удалить».
Процедура
нажатия на
кнопку «удалить»:
procedure
TSvaz.BitBtn1Click(Sender: TObject);
begin
table2.FindKey([table1.fieldbyname('KOD').asinteger,query1.fieldbyname('KOD').asinteger]);
table2.Delete;
// переход, удаление
и обновление
Table1.AfterScroll(table1);
end;
Процедура
нажатия на
кнопку «добавить»:
procedure
TSvaz.BitBtn3Click(Sender: TObject);
begin
table2.Append;
// добавление
записи в таблицу
«Соответствие»
table2.FieldByName('KKNIG').Asinteger:=table1.fieldbyname('KOD').AsInteger;
// в
поле
//“KKNIG”
поместить
значение кода
текущей книги
ShowWindow(Vibor_Avt.Handle,
SW_SHOW);
// показать форму
выбора автора
Vibor_Avt.Show;
svaz.Enabled:=false;
// заблокировать
форму
end;
После выхода
из формы выбора
автора управление
передается
процедуре:
procedure
TSvaz.vstavka;
begin
ifnot
(TableProv.FindKey([table2.fieldbyname('KKnig').asinteger,
table2.fieldbyname('KAvt'). asinteger])) thenbegin //
поиск
такой
же
записи
как
хотим
ввести
в
уже
введенных
try
Table2.post; //
сохранение
table2.Close; //
обновление
table2.Open;
except
messagedlg('Данный
автор присутствует
в списке',mtinformation,[mbok],0);
// сюда никогда
//не
перейдет
end;
end
elsebegin
table2.Cancel;
messagedlg('Данный
автор
присутствует
в
списке',mtinformation,[mbok],0);
end;
end;
Из-за ошибки
в Delphi
пришлось вставлять
еще два компонента
TableProv
и DataProv
– для того, чтоб
сначала искать
такую же запись
в таблице
соответствия,
какую хотим
ввести, и не
задействовать
уникальный
индекс, построенный
по полям Kknig
и Kavt.
Так как программа
потом перестает
работать. Вот
вырезка из
конференции:
Николаев
Констанитн
(04.12.01
20:54)
Уважаемые
специалисты!
Что
значит ошибка
"Index is out of date"?
С
уважением,
Константин.
Ю.Ю. (05.12.01
02:48)
Ошибка
в индексном
файле. Нужно
удалить и создать
заново.
kaif
©
(05.12.01
22:13)
Эта ошибка
существует
в D3,D4,D5. В D6 не проверял,
но уверен и там
она есть. Я пробовал
писать даже
на Borland Second Team по этому
поводу, но никто
меня слушать
даже не захотел
- отсылали на
форумы. Хотя
это чудовищный
баг, по моему
мнению. Ошибка
генерится по
следующему
алгоритму:
1.
Вставляете
запись в таблицу
Paradox, с нарушением
уникального
индекса. Неважно,
первичного
или вторичного.
Возникает
Key violation.
2. Делаете
невинный SQL-запрос
против этой
таблицы. Любой,
например,
SELECT * FROM
3. Вставляете
еще раз запись
с нарушением
уникального
индекса. сообщение
Key violation больше не
появляется.
После
переоткрытия
таблицы будете
гарантированно
иметь "Index is out of date."
Кто
не верит, могу
выслать исходный
код демонстрационной
программы .
Из
за этого мне
пришлось выбирать
между Paradox и Local SQL. Выбор
был трудный.
И я выбрал
InterBase.
Главная
подлость этой
ошибки в том,
что программист
не пытается
обычно создать
более 1 key violation подряд.
Этим обычно
занимается
пользователь.
Поэтому ошибка
плохо уловима
и иногда вылезает
через пару
месяцев работы
базы.
С описанной
ошибкой столкнулся
и я.
Форма
выбора автора
В
роли списка
выступает
компонент
DBLookupListBox, который
берет код из
таблицы авторов
и вставляет
его в таблицу
соответствия.
При закрытии
формы срабатывает
процедура
TSvaz.vstavka:
procedure
TVibor_Avt.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ShowWindow(Vibor_Avt.Handle,
SW_HIDE);
// скрыть форму,
но не закрывать
action:=canone;
svaz.Enabled:=true;
if
((svaz.Table2.State=dsInsert) or
(svaz.Table2.State=dsedit)) then
svaz.vstavka;
//
если мы добавляем
нового автора,
то перейти к
vstavka
svaz.Table1.AfterScroll(svaz.table1);
end;
При
нажатии на
кнопку «Добавить»
открывается
форма редактирования
списка авторов.
Форма
выбора автора
Эта
форма появляется
на экране либо
при нажатии
на кнопке «Авторы»
в меню главной
формы, либо при
нажатии на
кнопке «Добавить»
в форме, описанной
выше.
Форма
отображения
всех таблиц
В
этой форме
заголовки
столбцов в
таблицах показываются
«как есть», в
отличие от всех
предыдущих
форм, где заголовок
задавался на
этапе проектирования
– для удобства
и наглядности.
DBGrid’ы
связаны с наборами
данных, расположенными
на поверхности
формы DM,
которая имеет
тип DataModule.
Форма
DM.
Вид
формы на этапе
проектирования:
Формы
такого типа
не имеют визуальных
свойств и являются
контейнером
для не визуальных
компонентов.
Министерство
Образования
Российской
Федерации
Хабаровский
Государственный
Технический
Университет
Кафедра:
“Программного
обеспечения
ВТ и АС”
Лабораторная
работа №3
Тема:
“ Проектирование
экранной формы
электронного
аналога
исходного
документа ”
Выполнил:
студент
группы ПО-02
Самойленко
П.Р.
Проверил:
к.т.н., доцент
Саринков
А.А.
Хабаровск
2002
Вид формы
ввода
Для соединения
всех основных
таблиц воедино
используется
таблица SVOD.
Для установления
связи между
таблицами
используем
компоненты
TTable
и Tquery.
А точнее – их
свойства
MasterSource.
Вид формы
работающего
приложения:
В первых трех
таблицах выбирается
предмет и
специальность,
для которых
надо вывести
рекомендуемую
литературу.
Таблица «Предмет»
связана с таблицей
цикл «Цикл»
связью многие
к одному.
При смене
положения
указателя в
первых трех
таблицах запускается
процедура zapr
– для обновления
данных в таблицах
«Книги» и «Авторы
книг» через
компоненты
Query.
Процедура
zapr.
procedure
tsvaz.zapr;
var
i:integer;
begin
cislo:=0;
with
querysvod dobegin
Close;
parambyname('spec').Value:=table4.fieldbyname('KOD').AsInteger;
parambyname('dis').Value:=table5.fieldbyname('KOD').AsInteger;
Open;
AfterScroll(QuerySvod);
first;
for
i:=1 to
recordcount dobegin
cislo:=cislo+querySvod.fieldbyname('KOLICH').value;
label7.Caption:=floattostr(cislo);
next;
end;
end;
end;
Данная функция
задает значения
параметрам
компонента
querysvod,
который связан
с таблицей
«Книги».
Потом подсчитывается
количество
требуемых книг
и выводится
на поверхность
формы с помощью
компонента
Label7.
Сумма рассчитывается
последовательным
перебором
записей querysvod.
Также в теле
данной процедуры
вызывается
процедура
AfterScroll(QuerySvod):
procedure TSvaz.QuerySvodAfterScroll(DataSet: TDataSet);
begin
query1.Close;
query1.Params[0].Value:=querySvod.FieldByName('KOD').AsInteger;
query1.Open;
end;
Тут задается
значение параметру
компонента
query1
– для обновления
записей в таблице
«Список авторов».
SQL
запросы.
Текст запроса
компонента
querySvod:
select * from knigi
where kod in(
select KKnig from recomend
where kdisc=:dis and
kspec=:spec
)
order
by
NAZV
выбирает
из таблицы
knigi.db
все поля, где
значения kdisc
и kspec
– берутся из
верних таблиц.
Результаты
запроса отображаются
в таблице «Книги».
Текст запроса
компонента
Query1:
select *
from AVTOR
where kod in(
select kavt
from SOOTV
where kknig=:par )
order by FIO
через таблицу
SOOTV
идет связь книг
с авторами и
авторы данной
книги отображаются
в книге «Список
авторов».
Таким образом
в данной форме
отображаются
все данные,
которые были
в печатном
документе.
Другие работы по теме:
Состояние почв
Деградация почв является признанным в качестве основной глобальной проблемой, имеющих негативное воздействие на производительность сельского хозяйства, экосистем и атмосферных изменений, и воды и качество среды обитания. Однако, имеющиеся данные о типах, масштабов и степени деградации, в том числе на глобальном, региональном и национальном уровнях, не отвечают потребностям окружающей среды и развития учреждений.
Радиационная безопасность АЭС
Радиационная безопасность АЭС обеспечивается комплексом организационно-технических мероприятий, направленных на создание и поддержание таких условий труда персонала станции и жизнедеятельности населения.
Лабораторная работа №1
абораторная работа № 1 Тема : Последовательное и параллельное соединение потребителей электрической энергии. Цель работы : проверить законы параллельного и последовательного соединения
Переменный ток
Переменный ток Установившиеся вынужденные колебания можно рассматривать как протекание в цепи, обладающей емкостью С, индуктивностью L и активным сопротивлением R, переменного тока. Под действием внешнего напряжения
Міцність при динамічних і змінних навантаженнях
Реферат на тему: Міцність при динамічних і змінних навантаженнях За характером дії в часі напруження можуть бути постійними і змінними. При одноразовому навантаженні на елемент конструкції веде до деякого перерозподілу напружень в металі і не викликає його руйнування. При дії змінних напружень в окремих січеннях елементів з пониженою міцністю виникають мікроскопічні тріщини.
Деформація розтягу і стиску
Реферат на тему: Деформація розтягу і стиску Розтяг — один із основних видів деформацій, при якому розглядаються такі механічні характеристики, як границя пропорційності, пружності, текучості і міцності. Під терміном “розтяг–стиск” матеріалу, необхідно розуміти як дію зовнішньої сили прикладеної вздовж осі зразка і такий “розтяг-стиск” називається осьовим.
Расчет усилителя на биполярном транзисторе
Расчетно-графическая работа по курсу электроники. Расчет однокаскадного усилителя. Вариант №25. Задание: Требуется рассчитать однокаскадный усилитель на биполярном транзисторе, схема которого приведена ниже. В этой схеме тип транзистора определяется полярностью заданного напряжения.
Растениеводство
Растениеводство – одна из основных отраслей сельскохозяйственного производства, занимающаяся возделыванием культурных сельскохозяйственных растений. Растения являются важнейшими поставщиками продуктов питания.
Ргтэу 28 2009 799
В случае победы революции, страна становилась членом социалистического лагеря, там строились военные базы, туда вкладывались огромные ресурсы. Надо заметить, что помощь Советского Союза была, зачастую, безвозмездной, что вызывало симпатии к нам со стороны беднейших стран Африки и Латинской Америки
работа
УТВЕРЖДАЮ: Ректор И.М. Головных 01 сентября 2010 г. Учебный план Направление подготовки магистра: 13040068 (550600) – «Горное дело» Магистерская программа: ГМм «Горные машины и оборудование»
работа
УТВЕРЖДАЮ: Ректор профессор И.М. Головных 2010 г. Учебный план Направление подготовки магистра: 08050068 (521500) – «Менеджмент» Магистерская программа: ЭУПм «Производственный менеджмент»
работа
Направление подготовки магистра: 15040068 (551800) – «Технологические машины и оборудование»
Аденоид
ИСТОРИЯ БОЛЕЗНИ больного Клинический диагноз: а). Основное заболевание: аденоид III ст.; б). Сопутствующие заболевания: ОРЗ в). Осложнения основного заболевания: — .
Клиническая биохимия
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ В.Г. БЕЛИНСКОГО Принято на заседании Ученого совета Естественно-географического факультета протокол № ___от «___» _________2006 г.
Пиелонефрит, скрытое течение
Жалобы, история заболевания и настоящее состояние пациента. Фармакотерапия при диагнозе пиелонефрит, ее клинико-лабораторные критерии безопасности и заключение об эффективности. Режим применения лекарственных препаратов и особенности их взаимодействия.
Критерии постановки хирургических заболеваний
Острый аппендицит. Возраст и пол Встречается в любом возрасте у мужчин и женщин. Из анамнеза Могут быть аналогичные приступы болей в прошлом. Боль в начале заболевания не имеет четкой локализации, чаще возникает в подложечной области или принимает блуждающий характер по всему животу. Обычно тупая, ноющая, постоянного характера.
Гипотиреоз
Это полиэтиологический синдром, в основе лежит недостаточность функции щитовидной железы. 1. Первичный (тиреопривный) - в основе лежит заболевание щитовидной железы. Встречается чаще.
Расчет усилителя на биполярном транзисторе
Расчетно-графическая работа по курсу электроники. Расчет однокаскадного усилителя. Вариант №25. Задание: Требуется рассчитать однокаскадный усилитель на биполярном транзисторе, схема которого приведена ниже. В этой схеме тип транзистора определяется полярностью заданного напряжения.
Растениеводство 2
Растениеводство — наука о культурных растениях и их возделывании. Рассматривать растениеводство с производственной точки зрения, учение рентабельном выращивании максимальных урожаев продукции с-х. культур. при высоком ее качестве. Научное растениеводство строится на принципах современной биологической науки, изучающей особенности развития растений, их требования к условиям среды.
Государственная экспертиза условий труда
Цели и порядок проведения государственной экспертизы условий труда определены постановлением Правительства РФ от 25 апреля 2003 года № 244 "Об утверждении положения о проведении государственной экспертизы условий труда в Российской Федерации".