Лабораторные работы (в ХГТУ)

Задание Для модели базы данных, разработанной в первой самостоятельной работе [1], используя DataBase Desktop, дать описание системы соответствующих таблиц локальной базы данных в формате Paradox7.

Структура таблиц

Таблица AVTOR

Код автора (KOD)-ключевое, автоинкрементное поле;
Фамилия, имя, отчество (FIO)-строка до 50 символов, обязательного заполнения;
Год рождения (ROZD) – строка до 4 символов с маской “####”

Таблица CIKL

Код цикла (KOD)-ключевое, автоинкрементное поле;
Название цикла (NAZV)- строка до 120 символов, обязательного заполнения;

Таблица DISCIP

Код дисциплины (KOD)-ключевое, автоинкрементное поле;

Название дисциплины(NAZV)- строка до 120 символов, обязательного заполнения;
Код цикла (KCIKL) — содержит ссылку на таблицу подстановки CIKL, по полю KOD, типа Long Integer (установлена ссылочная целостность);

Таблица GRUP

Код группы (KOD)-ключевое, автоинкрементное поле;
Код специальности (KSP) — содержит ссылку на таблицу подстановки SPEC, по полю KOD, типа Long Integer (установлена ссылочная целостность);
Название потока (POTOK) — строка до 20 символов, обязательного заполнения;
Год поступления (GOD) — строка до 4 символов с маской “####”, обязательного заполнения.

Таблица KNIGI

Код книги (KOD)-ключевое, автоинкрементное поле;

Название книги (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

С описанной ошибкой столкнулся и я.

Форма выбора автора

В роли списка выступает компонент 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 идет связь книг с авторами и авторы данной книги отображаются в книге «Список авторов».

Таким образом в данной форме отображаются все данные, которые были в печатном документе.

3. Вставляете еще раз запись с нарушением уникального индекса. сообщение Key violation больше не появляется.После переоткрытия таблицы будете гарантированно иметь «Index is out of date.»Кто не верит, могу выслать исходный код демонстрационной программы .Из за этого мне пришлось выбирать между Paradox и Local SQL. Выбор был трудный. И я выбрал InterBase.Главная подлость этой ошибки в том, что программист не пытается обычно создать более 1 key violation подряд. Этим обычно занимается пользователь. Поэтому ошибка плохо уловима и иногда вылезает через пару месяцев работы базы.

Заказывайте рефераты — 150 р. курсовые — 700 р. дипломы — 2500 р.

Оценить/Добавить комментарий

Имя

Оценка НеудовлетворительноУдовлетворительноХорошоОтлично

document.all.comments_form.pincode.value=31-51*84+3*99*53-35;

Работы, похожие на Реферат Лабораторные работы (в ХГТУ)

Разработка баз данных в Delphi

Создание баз данных в Delphi Урок 1 Настройка BDE Содержание урока 1 Обзор 2 Сущность BDE 2 Алиасы 2 Системная информация утилиты настройки BDE 4 … Long Integer Select * form Country where Name like «C%»
Раздел Рефераты по информатике, программированию Тип реферат Просмотров 1460 Комментариев 1 Похожие работы Оценило 1 человек Средний балл 5 Оценка неизвестно Скачать

Програмирование на Visual Basic

VISUAL BASIC 6 Глава 1. ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ НА VISUAL BASIC 4 В СРЕДЕ WINDOWS 1. 1. ЭКРАННЫЕ ЭЛЕМЕНТЫ После запуска Visual Basic на экране … Familia As String * 20 Name As String * 10 Voyast As Integer Birthdate As Double Length As Integer Wegith As Integer End Type Select Case, Case, Case Else, End Select ключевые слова
Раздел Рефераты по кибернетике Тип реферат Просмотров 773 Комментариев 0 Похожие работы Оценило 1 человек Средний балл 4 Оценка неизвестно Скачать

Разработка программного обеспечения по автоматизации учебного процесса …

Федеральное агентство по образованию федеральное Государственное образовательное учреждение среднего профессионального образования Бежецкий … ADOQuery1.FieldByName(‘gruppa’).AsString =ExcelApplication1.Cells.Item[i,1].Value; ADOQUERY1.SQL.Add(‘Select* from ozenka where(ozenka.kodspez = «‘+Combobox4.Text+'»and ozenka.koddis = «‘+Combobox3.Text+'»and ozenka.mes = «‘+Combobox1.Text+'»and ozenka.god …
Раздел Рефераты по информатике, программированию Тип дипломная работа Просмотров 193 Комментариев 0 Похожие работы Оценило 0 человек Средний балл 0 Оценка неизвестно Скачать

Проектирование Базы Данных для коммерческого предприятия

Выполнил студент группы 31 И 230103 Автоматизированные системы обработки информации и управления (в промышленности) Ярославский государственный … memo1.Lines.Add(Timetostr(time)+’ Запись была удалена из таблицы [ ‘+inttostr(warehouse.fieldbyname(‘Код’).Value)+’ ‘+warehouse.fieldbyname(‘Наименование’).Value+’ mainform.Query1.SQL.Add(‘select ‘+’Код, Наименование, «Дата выпуска», «Кол-во», «Цена закупки», «Группа» ‘+’from ‘+mainform.ComboBox1.Text+’ where ‘+combobox1.Text+’=’+edit1.text);
Раздел Рефераты по информатике, программированию Тип дипломная работа Просмотров 5955 Комментариев 14 Похожие работы Оценило 16 человек Средний балл 4.8 Оценка 5 Скачать

Организация удаленного доступа к распределенным базам данных

Содержание Введение.. 1. Основные подходы к проектированию распределенных баз данных.. Процедура базы данных создается оператором CREATE PROCEDURE (СОЗДАТЬ ПРОЦЕДУРУ) и содержит определения переменных, операторы SQL (например, SELECT, INSERT), операторы проверки … CREATE PROCEDURE TalksGetPay (APhone INTEGER, ADay DATE, ACallTime INTEGER, AHowLong INTEGER)
Раздел Рефераты по информатике Тип реферат Просмотров 2992 Комментариев 0 Похожие работы Оценило 2 человек Средний балл 5 Оценка неизвестно Скачать

АРМ мененджер автосалона «А-моторс»

ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА АСТАНА Политехнический колледж города Астана 010000 3706002 ДИПЛОМНЫЙ ПРОЕКТ АРМ менеджера в автосалоне «A-Motors … Query1.Sql.Add(‘select a.kod_avto, m.marka, a.model, a.cvet, a.tip_kuz, a.cena, a.v, k.korobka,k.privod ‘ dm1.vlad.FieldByName(‘KOD_vlad’).Value =k1;
Раздел Рефераты по информатике, программированию Тип дипломная работа Просмотров 114 Комментариев 0 Похожие работы Оценило 0 человек Средний балл 0 Оценка неизвестно Скачать

Создание базы данных «РЭО-ГАИ»

Министерство образования и науки Республики Казахстан Карагандинский государственный технический университет Кафедра САПР ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к … WHERE [Код марки авто] = @marka_id Kod_inspectora = dbo.
Раздел Рефераты по информатике, программированию Тип курсовая работа Просмотров 39 Комментариев 0 Похожие работы Оценило 0 человек Средний балл 0 Оценка неизвестно Скачать

Разработка базы данных флагов мира

Министерство образования и науки Украины Харьковский национальный университет радиоэлектроники Кафедра ПО ЭВМ ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовому … Long Integer DM.qWork.SQL.Add(‘Select Language from Language where ID in (Select ID_Language from Main where ID_Country in (Select ID from Country where Country = »’+DM.tbCountryCountry.Value …
Раздел Рефераты по информатике, программированию Тип курсовая работа Просмотров 18 Комментариев 0 Похожие работы Оценило 0 человек Средний балл 0 Оценка неизвестно Скачать

Организация документооборота с помощью «Visual Basic for …

СОДЕРЖАНИЕ АНОТАЦИЯ ВВЕДЕНИЕ 1. ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ. 1.1 Обоснование языка программирования 1.2 Введение в Visual Basic for Application 1.2.1 Об … Sub DemoDialogs() Dim idx As Long End Select
Раздел Рефераты по информатике, программированию Тип курсовая работа Просмотров 284 Комментариев 0 Похожие работы Оценило 0 человек Средний балл 0 Оценка неизвестно Скачать

Автоматизация учета товаров на АГЗС «Северного объединения по …

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ) ФЕДЕРАЛЬНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО … «WHERE (((Продажа.Дата)> all(select max(Начало) from Смены)) WHERE (((приход.ДатаПрихода)>=(SELECT Смены.Начало FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) ) And (приход.ДатаПрихода)<=(SELECT Смены ...
Раздел Рефераты по информатике, программированию Тип дипломная работа Просмотров 461 Комментариев 0 Похожие работы Оценило 0 человек Средний балл 0 Оценка неизвестно Скачать

Все работы, похожие на Реферат Лабораторные работы (в ХГТУ) (1048)

Назад

«