Лабораторная работа №3 / Lab3
.docЛабораторная №3
Запрос А) : вывести на экран сведения, содержащиеся в БД по адресу 0:13
Последовательность запроса
( с учетом уже открытой БД – «Example»)
Access_Record_Get // последовательность запросов в меню.
Read( 0:13 ) // считывает значение с экрана
Информация на экране
RECORD: SUBJECT SIZE: 134 TOTAL FIELDS: 5 PAGE 1 OF 1
SB_SHFP >АС02<
SB_NAME >Интегральные сети связи<
LECT_VOL >48<
LAB_VOL >16<
PRACT_VOL >16<
Запрос Б) найти и выдать информацию о НИРах, шифры, которых изменяются в пределах «АСОИУ-01» - «АСОИУ - 99»
Список команд меню:
Open_Access_Record_KeyScan_KeyFine
/* выбор поля ключа*/
SELECT KEY FIELD
RS_SHFP /* ключ - поле шифра НИР */
Read(АСОИУ-01);
While Next = “АСОИУ%”
{
Next
}
Результаты:
Первая найденная запись:
RS_SHFP >АСОИУ-10<
RS_NAME >Эквивалент<
RS_START_DATE >891219<
RS_FINISH_DATE >911215<
RS_PRICE >80000<
CUSTOMER >НПО Восход<
Следующие: АСОИУ 11,12,13,14,15,16,17,23,29,30,32,37,39,44,45,48,70,90,91
Последняя найденная запись:
RS_SHFP >АСОИУ-91<
RS_NAME >Разработка комплекса моделирования на основе сетей Петри на >
RS_START_DATE >900101<
RS_FINISH_DATE >911230<
RS_PRICE >80000<
CUSTOMER >ЛНПО Красная заря<
Запрос В :
Найти и выдать всю имеющуюся в БД информацию о НИРах, упорядоченную по возрастанию стоимости работ.
Список команд меню:
Open_Access_Set_Last
/* найти последний член в одном из наборов */
select set (RESEARCH_LIST)
while Previous <> EndOfSet
{
Previous
}
/* переходим на последнюю запись и в обратном порядке просматриваем набор*/
/*это связано с убывающим расположением записей по стоимости НИР*/
/* а нам необходимо получить возрастание */
Результаты:
Первая полученная запись
RS_SHFP >АПУ-69<
RS_NAME >Исследование и разработка структур баз данных для ГАП<
RS_START_DATE >900116<
RS_FINISH_DATE >901231<
RS_PRICE >0<
CUSTOMER >НИИ Центр<
n- ая запись:
RS_SHFP >АСОИУ-12<
RS_NAME >Разработка методик и рекомендаций по информационному обеспеч>
RS_START_DATE >900101<
RS_FINISH_DATE >911215<
RS_PRICE >60000<
CUSTOMER >ЛНПО Красная заря<
Последняя запись:
RS_SHFP >ГКВШ-1<
RS_NAME >Информатизация России<
RS_START_DATE >910115<
RS_FINISH_DATE >951231<
RS_PRICE >6000000<
CUSTOMER >ГК РСФСР по ДН и ВШ<
Запрос Г : для НИР с шифром «АСОИУ- 70» найти и выдать фамилии и номера групп всех студентов участвующих в её проведении.
Алгоритм действий:
Находим в поиске нужную НИР.
Делаем её владельцем набора участвующих студентов.
Просматриваем набор студентов, связанный с текущим владельцем.
Список команд меню:
/* находим НИР «АСОИУ - 70» */
Open_Access_Record_Keyscan_Keyfind
Select key field ( RS_SHFP)
Read(«АСОИУ-70»)
/* выбираем данный НИР в качестве владельца набора студентов*/
Open_Access_Currency_Owner
Select set( STUDENTS_IN_RESEARCH )
/* просмотр набора участвующих студентов в текущем НИР
Open_Access_Set_Scan
Select set(STUDENTS_IN_RESEARCH )
Результат:
1. STUDENT {"63300004","633",5,"Кудряшова","Лариса","Владимировна
2. STUDENT {"93300014","933",2,"Крепс","Сергей","Николаевич"}
3. STUDENT {"73300001","733",4,"Тульчинская","Елена","Сергеевна"}
4. STUDENT {"73300002","733",4,"Иванов","Вадимир","Дмитриевич"}
5. STUDENT {"833А0001","833а",3,"Анфилофьев","Андрей","Дементьеви
6. STUDENT {"833А0002","833а",3,"Павлов","Юрий","Капитонович"}
Запрос Д :
Для какой-либо НИР, являющейся работой-компонентой, найти и выдать название комплексной НИР.
Алгоритм действий:
Найти НИР – компоненту
Указываем его как текущий член набора «Компоненты НИР»
Отыскиваем владельца для указанного члена набора.
/* находим НИР - компоненту */
Open_Access_Record_Keyscan_Keyfind
Select key field ( RS_SHFP)
Read(«АСОИУ-2000»)
/* Указываем его как текущий член набора «Компоненты НИР» */
Open_Access_Currency_Member
Select set( PARTS_OF_RESEARCH )
/* Просматрваем данные по владельцу выбранного НИР-компонента */
Open_Access_Set_Owner
Select set(PARTS_OF_RESEARCH )
Результат:
RS_SHFP >АСОИУ-10<
RS_NAME >Эквивалент<
RS_START_DATE >891219<
RS_FINISH_DATE >911215<
RS_PRICE >80000<
CUSTOMER >НПО Восход<
Запрос Е :
Найти и выдать фамилии, ученые степени, должности и месячные оклады преподавателей, участвующих в проведении НИР с шифром «АСОИУ - 14»;
Найти и выдать названия НИР , в которых учавствует кто-либо из преподавателей, участвующих в НИР «АСОИУ -14»
Алгоритм
Находим НИР «АСОИУ - 14» в поиске.
Определить её как владельца набора участвующих преподавателей.
Участвующие преподаватели – RESEARCH_TO_TEACHER
Просматриваю список участвующих преподавателей.
По нему надо найти самого преподавателя
Определить участвующего преподавателя как члена набора «преподаватель в НИРах».
И просмотреть преподавателя- владельца в TEACHER_IN_RESEARCHES
Выбрать одного из преподавателей.
Определить его как владельца набора преподаватель в НИРах.
Выдать данные о НИРах в которых он участвует.
Список команд меню:
/* Находим НИР «АСОИУ - 14» в поиске.
Open_Access_Record_Keyscan_Keyfind
Select key field ( «АСОИУ -14»)
RS_SHFP >АСОИУ-14<
RS_NAME >Разработка состава и структуры типового модуля интегрированн>
RS_START_DATE >910301<
RS_FINISH_DATE >911215<
RS_PRICE >20000<
CUSTOMER ><
/* Определение её как владельца набора участвующих преподавателей.
Open_Access_Currency_Owner
Select set (RESEARCH_TO_TEACHER)
Open_Access_Set_Scan
Select set ( RESEARCH_TO_TEACHER)
/* Определили научную степень и месячный оклад
ENTRY RECORD TYPE RECORD CONTENTS
1. PARTICIPATION {"н.с.",910301,911215,220}
2. PARTICIPATION {"с.н.с.",910301,911215,320}
/* выбираем одного из преподавателей
select ( 1. PARTICIPATION {"н.с.",910301,911215,220} )
JOB >н.с.<
PRT_START_DATE >910301<
PRT_FINISH_DATE >911215<
MONTH_SALARY >220<
/* Определяем участвующего преподавателя как члена набора «преподаватель в НИРах».
Open_Access_Currency_Member
Select set ( TEACHER_IN_RESEARCHES)
/* просмотр преподавателя – владельца
Set_Owner
Select set ( TEACHER_IN_RESEARCHES)
TCH_ID >70001<
TCH_NAME >Смирнов<
TCH_SURNAME >Виктор<
TCH_PATR_NAME >Александрович<
DEGREE >канд.<
DEPT >АСОИУ<
/* Находим названия НИРов в которых участвует данный преподаватель.
Open_Access_Currency_Owner
Select set (TEACHER_IN_RESEARCH)
Set_Scan
Select set ( TEACHER_IN_RESEARCHES)
ENTRY RECORD TYPE RECORD CONTENTS
1. PARTICIPATION {"н.с.",910301,911215,220}
/* в данном случае Смирнов участвует только в одном НИРе
select (1. PARTICIPATION {"н.с.",910301,911215,220} )
Currency_Member
Select set(RESEARCH_TO_TEACHER)
Set_Owner
Select set(RESEARCH_TO_TEACHER)
RS_SHFP >АСОИУ-14<
RS_NAME >Разработка состава и структуры типового модуля интегрированн>
RS_START_DATE >910301<
RS_FINISH_DATE >911215<
RS_PRICE >20000<
CUSTOMER ><
Запрос Ж :
Найти и выдать названия предметов, лабораторные занятия по которым проводятпреподаватели, участвующие в проведении НИР с шифром «АСОИУ-14»
Список команд меню:
/* Находим НИР «АСОИУ - 14» в поиске.
Open_Access_Record_Keyscan_Keyfind
Select key field ( «АСОИУ -14»)
RS_SHFP >АСОИУ-14<
RS_NAME >Разработка состава и структуры типового модуля интегрированн>
RS_START_DATE >910301<
RS_FINISH_DATE >911215<
RS_PRICE >20000<
CUSTOMER ><
/* Определение её как владельца набора участвующих преподавателей.
Open_Access_Currency_Owner
Select set (RESEARCH_TO_TEACHER)
Open_Access_Set_Scan
Select set ( RESEARCH_TO_TEACHER)
/* Определили научную степень и месячный оклад
ENTRY RECORD TYPE RECORD CONTENTS
1. PARTICIPATION {"н.с.",910301,911215,220}
2. PARTICIPATION {"с.н.с.",910301,911215,320}
/* выбираем одного из преподавателей
select ( 1. PARTICIPATION {"н.с.",910301,911215,220} )
JOB >н.с.<
PRT_START_DATE >910301<
PRT_FINISH_DATE >911215<
MONTH_SALARY >220<
/* Определяем участвующего преподавателя как члена набора «преподаватель в НИРах».
Open_Access_Currency_Member
Select set ( TEACHER_IN_RESEARCHES)
/* просмотр преподавателя – владельца
Set_Owner
Select set ( TEACHER_IN_RESEARCHES)
TCH_ID >70001<
TCH_NAME >Смирнов<
TCH_SURNAME >Виктор<
TCH_PATR_NAME >Александрович<
DEGREE >канд.<
DEPT >АСОИУ<
/* Определение Смирнова владельцем набора «Преподаватель по предметам»
Set_Owner
Select set (TEACHER_TO_SUBJECTS)
Set_Scan
Select set (TEACHER_TO_SUBJECTS)
/* получили проведение занятий
ENTRY RECORD TYPE RECORD CONTENTS
1. TEACHING {0,40,20}
2. TEACHING {0,16,16}
/* выбираем одно из занятий и получаем название предмета с лабами */
select ( 1. TEACHING {0,40,20} )
Currency_Member
Select set ( SUBJECT_TO_TEACHERS)
Set_Owner
Select set ( SUBJECT_TO_TEACHERS)
SB_SHFP >АС01<
SB_NAME >Основы автоматизированного управления<
LECT_VOL >60<
LAB_VOL >40<
PRACT_VOL >20<
/* выбираем второй род занятий
Set_Scan
Select set (TEACHER_TO_SUBJECTS)
set ( 2. TEACHING {0,16,16} )
TCH_LECT_VOL >0<
TCH_LAB_VOL >16<
TCH_PRACT_VOL >16<
Currency_Member
Select set ( SUBJECT_TO_TEACHERS)
Set_Owner
Select set ( SUBJECT_TO_TEACHERS)
SB_SHFP >АС02<
SB_NAME >Интегральные сети связи<
LECT_VOL >48<
LAB_VOL >16<
PRACT_VOL >16<
/* Возвращаемся ко второму преподавателю
Open_Access_Set_Scan
Select set ( RESEARCH_TO_TEACHER)
Select( 2. PARTICIPATION {"с.н.с.",910301,911215,320} )
JOB >с.н.с.<
PRT_START_DATE >910301<
PRT_FINISH_DATE >911215<
MONTH_SALARY >320<
Open_Access_Currency_Member
Select set ( TEACHER_IN_RESEARCHES)
/* просмотр преподавателя – владельца
Set_Owner
Select set ( TEACHER_IN_RESEARCHES)
TCH_ID >70006<
TCH_NAME >Шеховцов<
TCH_SURNAME >Олег<
TCH_PATR_NAME >Иванович<
DEGREE >канд.<
DEPT >АСОИУ<
/* Определение Шеховцова владельцем набора «Преподаватель по предметам»
Set_Owner
Select set (TEACHER_TO_SUBJECTS)
Set_Scan
Select set (TEACHER_TO_SUBJECTS)
“ Set has not members “ /* У Шеховцова нет занятий! */