Заключение.
Информационная система учета успеваемости студентов деканата "А" для сбора, хранения и обработки информации о студентах
Выполненная выпускная квалификационная работа посвящена разработке информационной системы деканата. В процессе создания был разработан интерфейс, ориентированный на конечного пользователя, не обладающего высокой квалификацией в области вычислительной техники. Для обеспечения защиты информации хранимой в БД от несанкционированного проникновения и утечки информации были введены ограничения прав… Читать ещё >
Заключение. Информационная система учета успеваемости студентов деканата "А" для сбора, хранения и обработки информации о студентах (реферат, курсовая, диплом, контрольная)
Выполненная выпускная квалификационная работа посвящена разработке информационной системы деканата. В процессе создания был разработан интерфейс, ориентированный на конечного пользователя, не обладающего высокой квалификацией в области вычислительной техники. Для обеспечения защиты информации хранимой в БД от несанкционированного проникновения и утечки информации были введены ограничения прав доступа пользовательской и административной части.
В результате проведена следующая работа:
- — построена семантическая модель предметной области, определены и описаны информационные объекты и связи между ними;
- — разработана схема базы данные на основе построенной модели данных с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.
- — выбраны программные средства для разработки программного обеспечения на основе проведенного сравнительного анализа по сформулированным критерия;
- — разработана структура сети для обеспечения надежной работы всех сотрудников системы деканата;
- — разработан эргономичный интерфейс;
- — созданы руководства пользователей.
Список использованных источников
- 1. Гончаров, Алексей Юрьевич. ACCESS 2003: самоучитель с примерами / А. Ю. Гончаров .— Москва: КУДИЦ-ОБРАЗ, 2004 .— 270 с.: ил .— Рассмотрены примеры создания реальных баз данных.
- 2. Дейт, К.Дж.
Введение
в системы баз данных: Пер. с англ. / К.Дж. Дейт .— 7-е изд. — Москва: Вильямс, 2001 .— 1071 с.: ил .— Доп. тит.л. на англ. яз. — Библиогр. в конце частей.
- 3. Калинкина, Татьяна Ивановна. Телекоммуникационные и вычислительные сети. Архитектура, стандарты и технологии: учеб. пособие для вузов по направлению «Информатика и вычисл. техника» / Т. И. Калинкина, Б. В. Костров, В. Н. Ручкин .— СПб.: БХВ-Петербург, 2010 .— 283 с.: ил.; 23 см .— (Учебное пособие) .— Библиогр.: с. 281−283.
- 4. Когаловский Михаил Рувимович. Перспективные технологии информационных систем. — М.: ДМК-Пресс, 2003, — 288с.
- 5. Минаси, М. Графический интерфейс пользователя: секреты проектирования. — М.: Мир, 1996 .— 159 с.
- 6. Понамарев, Вячеслав Александрович. Базы данных в Delphi 7: Самоучитель / В. А. Понамарев .— Санкт-Петербург: Питер, 2003 .— 219 с.: ил .— (Самоучитель). — Библиогр.: с. 219.
- 7. Фленов, Михаил. Библия Delphi / Михаил Фленов .— 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2008 .— 799 с.: ил. + 1 электрон. опт. диск (CD-ROM) .— Библиогр.: с. 794.
- 8. СНиП 23−05−95. Естественное и искусственное освещение.
- 9. НПБ 105−03 «Определение категорий помещений, зданий и наружных установок по взрывопожарной и пожарной опасности»
- 10. СНиП 21.01—97-II. Пожарная безопасность зданий и сооружений.
- 11. СанПиН 2.2.2/2.4.1340−03. Санитарно-эпидемиологические правила и нормативы.
Приложение А
Файл SpisokStudentov.pas.
unit SpisokStudentov;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, DBGridEhGrouping, DBGridEh, ExtCtrls, DBCtrls, StdCtrls, Mask,.
DBCtrlsEh, DBLookupEh, GridsEh, DMUnit, ComCtrls, DB, ADODB, DBTables, EhLibADO;
type.
TSpisokStudentovForm = class (TForm).
PageControl1: TPageControl;
Список: TTabSheet;
Карточка: TTabSheet;
DBGridEh1: TDBGridEh;
Panel1: TPanel;
FamLabel: TLabel;
FormLabel: TLabel;
ImLabel: TLabel;
OtchLabel: TLabel;
GrupLabel: TLabel;
NumbLabel: TLabel;
LgotLabel: TLabel;
ZadoljLabel: TLabel;
FamDBEditEh: TDBEditEh;
ImDBEditEh: TDBEditEh;
OtchDBEditEh: TDBEditEh;
NumbDBEditEh: TDBEditEh;
GrupDBEditEh: TDBEditEh;
PageControl2: TPageControl;
TabSheet1: TTabSheet;
LichGroupBox: TGroupBox;
PolLabel: TLabel;
DatRojLabel: TLabel;
MRojLabel: TLabel;
GrajLabel: TLabel;
DatRojDBDateTimeEditEh: TDBDateTimeEditEh;
MRojDBEditEh: TDBEditEh;
GrajDBLookupComboboxEh: TDBLookupComboboxEh;
PolDBLookupComboboxEh: TDBLookupComboboxEh;
PaspDanGroupBox: TGroupBox;
VidDocLichLabel: TLabel;
NomerDocLichLabel: TLabel;
SerDocLichLabel: TLabel;
KemVidanPasLabel: TLabel;
VidDocDBLookupComboboxEh: TDBLookupComboboxEh;
NomerDocLichDBEditEh: TDBEditEh;
SerDocLichDBEditEh: TDBEditEh;
KemVidanPasDBEditEh: TDBEditEh;
LgotiGroupBox: TGroupBox;
NalichLgotLabel: TLabel;
NomSprLabel: TLabel;
DatSpravLabel: TLabel;
PrimechLabel: TLabel;
Label2: TLabel;
NalLgotDBLookupComboboxEh: TDBLookupComboboxEh;
NoSpravDBEditEh: TDBEditEh;
DataSpravDBDateTimeEditEh: TDBDateTimeEditEh;
PrimachSpravDBEditEh: TDBEditEh;
DBDateTimeEditEh1: TDBDateTimeEditEh;
ContactGroupBox: TGroupBox;
DomTelLabel: TLabel;
MobTelLabel: TLabel;
ProjLabel: TLabel;
Label18: TLabel;
Label19: TLabel;
DomTelDBEditEh: TDBEditEh;
MobTelDBEditEh: TDBEditEh;
ProjDBLookupComboboxEh: TDBLookupComboboxEh;
DBLookupComboboxEh2: TDBLookupComboboxEh;
DBEditEh12: TDBEditEh;
TabSheet2: TTabSheet;
DanObrazovGroupBox: TGroupBox;
VidDocObrazLabel: TLabel;
SerDocObrazLabel: TLabel;
NomerDocObrazLabel: TLabel;
DataVidDocObrazLabel: TLabel;
OtlichLabel: TLabel;
InostranLabel: TLabel;
VidDocObrazDBLookupComboboxEh: TDBLookupComboboxEh;
SerDocObrazDBEditEh: TDBEditEh;
NomerDocObrazDBEditEh: TDBEditEh;
DataVidDocObrazDBDateTimeEditEh: TDBDateTimeEditEh;
OtlichDBLookupComboboxEh: TDBLookupComboboxEh;
InostrDBLookupComboboxEh: TDBLookupComboboxEh;
DanZachslGroupBox: TGroupBox;
OsnavanLabel: TLabel;
DataZachislLabel: TLabel;
NomPrikazLabel: TLabel;
SpecLabel: TLabel;
NapravLabel: TLabel;
SpacializLabel: TLabel;
SrokObuchLabel: TLabel;
OtdelenLabel: TLabel;
FormObuchLabel: TLabel;
PrimechOsnovLabel1: TLabel;
OsnovanDBLookupComboboxEh: TDBLookupComboboxEh;
DataZachislDBDateTimeEditEh: TDBDateTimeEditEh;
DBEditEh1: TDBEditEh;
SpecDBLookupComboboxEh: TDBLookupComboboxEh;
NapravDBLookupComboboxEh: TDBLookupComboboxEh;
SpecializDBLookupComboboxEh: TDBLookupComboboxEh;
SrokObuchDBLookupComboboxEh: TDBLookupComboboxEh;
OtdelenDBLookupComboboxEh: TDBLookupComboboxEh;
FormObuchDBLookupComboboxEh: TDBLookupComboboxEh;
DBEditEh4: TDBEditEh;
ChangeButton: TButton;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
GroupBox1: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
DBEditEh2: TDBEditEh;
DBEditEh5: TDBEditEh;
DBDateTimeEditEh2: TDBDateTimeEditEh;
DBLookupComboboxEh3: TDBLookupComboboxEh;
GroupBox2: TGroupBox;
PageControl3: TPageControl;
TabSheet7: TTabSheet;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
DBEditEh6: TDBEditEh;
DBLookupComboboxEh4: TDBLookupComboboxEh;
DBEditEh7: TDBEditEh;
DBDateTimeEditEh3: TDBDateTimeEditEh;
TabSheet8: TTabSheet;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
DBEditEh8: TDBEditEh;
DBLookupComboboxEh5: TDBLookupComboboxEh;
DBEditEh9: TDBEditEh;
DBDateTimeEditEh4: TDBDateTimeEditEh;
TabSheet9: TTabSheet;
Label16: TLabel;
Label17: TLabel;
Label20: TLabel;
Label21: TLabel;
DBEditEh10: TDBEditEh;
DBLookupComboboxEh6: TDBLookupComboboxEh;
DBEditEh11: TDBEditEh;
DBDateTimeEditEh5: TDBDateTimeEditEh;
DBNavigator1: TDBNavigator;
PoiskEdit: TEdit;
Label1: TLabel;
TabSheet10: TTabSheet;
Label22: TLabel;
Label23: TLabel;
groupsComboBox: TComboBox;
studentsGrid: TDBGridEh;
unGroupGrid: TDBGridEh;
PasteButton: TButton;
StudentsDataSource: TDataSource;
unGroupDataSource: TDataSource;
GroupBox3: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
DBGridEh2: TDBGridEh;
DBGridEh3: TDBGridEh;
Label3: TLabel;
PoiskGrEdit: TEdit;
DBNavigator3: TDBNavigator;
DBEditEh3: TDBEditEh;
DBEditEh13: TDBEditEh;
DBEditEh14: TDBEditEh;
procedure Button7Click (Sender: TObject);
procedure Button3Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure groupsComboBoxChange (Sender: TObject);
procedure PasteButtonClick (Sender: TObject);
procedure FormActivate (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure PoiskFamEditChange (Sender: TObject);
procedure PoiskGrEditChange (Sender: TObject);
private.
studentsQuery: TADOQuery;
ungroupQuery: TADOQuery;
procedure getGroups;
procedure getStudents;
procedure getunGroup;
function getIdGroupByName (Name: string):integer;
public.
{ Public declarations }.
end;
var.
SpisokStudentovForm: TSpisokStudentovForm;
implementation.
uses Formirovaniegruppi, StudentFormUnit, SpravkaUnit;
{$R *.dfm}.
procedure TSpisokStudentovForm. Button1Click (Sender: TObject);
begin.
Spravka.Show;
DM.SpiStudentDataS.IndexFieldNames:= 'Фамилия';
end;
procedure TSpisokStudentovForm. Button3Click (Sender: TObject);
begin.
StudentForm.Show;
end;
procedure TSpisokStudentovForm. Button7Click (Sender: TObject);
begin.
FormirovanieGruppiForm.Show;
end;
procedure TSpisokStudentovForm. PoiskFamEditChange (Sender: TObject);
var.
filter: string;
begin.
if Length (PoiskEdit.Text) > 0 then.
begin.
DM.SpiStudentDataS.Filtered:=true;
filter := 'Фамилия like ''*'+PoiskEdit.Text+'*''';
DM.SpiStudentDataS.Filter:=filter;
end.
else.
begin.
DM.SpiStudentDataS.Filtered:=false;
DM.SpiStudentDataS.Filter:='';
end;
end;
procedure TSpisokStudentovForm. PoiskGrEditChange (Sender: TObject);
var.
filter: string;
begin.
if Length (PoiskGrEdit.Text) > 0 then.
begin.
DM.SpiStudentDataS.Filtered:=true;
filter := 'name like ''*'+PoiskGrEdit.Text+'*''';
DM.SpiStudentDataS.Filter:=filter;
end.
else.
begin.
DM.SpiStudentDataS.Filtered:=false;
DM.SpiStudentDataS.Filter:='';
end;
end;
procedure TSpisokStudentovForm. FormActivate (Sender: TObject);
begin.
getGroups;
groupsComboBox.Text := '';
getStudents;
getunGroup;
PoiskEdit.Text:='';
end;
procedure TSpisokStudentovForm. FormCreate (Sender: TObject);
begin.
studentsQuery := TADOQuery. Create (nil);
studentsQuery.Connection := DM. Connection;
ungroupQuery := TADOQuery. Create (nil);
ungroupQuery.Connection := DM. Connection;
end;
procedure TSpisokStudentovForm. groupsComboBoxChange (Sender: TObject);
begin.
getStudents;
getunGroup;
if groupsComboBox. ItemIndex>=0 then.
PasteButton.Enabled := true.
else.
PasteButton.Enabled := False;
end;
procedure TSpisokStudentovForm. PasteButtonClick (Sender: TObject);
var fromGroup, toGroup, fio: string;
id, idstudent: integer;
updateQuery:TADOQuery;
btnResult: integer;
begin.
toGroup := groupsComboBox. Items[groupsComboBox.ItemIndex];
fromGroup := ungroupQuery. FieldByName ('name').AsString;
fio := ungroupQuery. FieldByName ('Фамилия').AsString;
idstudent := ungroupQuery. FieldByName ('id').AsInteger;
btnResult := MessageDlg ('Внимание! Вы точно хотите переместить студента '+fio+' из группы '+fromGroup+' в группу '+toGroup+'?',.
mtInformation, mbYesNo, 0);
if btnResult=6 then.
begin.
id := getIdGroupByName (toGroup);
updateQuery := TADOQuery. Create (nil);
updateQuery.Connection := DM. Connection;
updateQuery.SQL.Add ('update [Данные студента] set id_группа=:id where id=:idstudent');
updateQuery.Parameters.ParamByName ('id').Value := id;
updateQuery.Parameters.ParamByName ('idstudent').Value := idstudent;
updateQuery.ExecSQL;
updateQuery.Close;
updateQuery.Free;
studentsQuery.Requery ();
ungroupQuery.Requery ();
end;
end;
procedure TSpisokStudentovForm. getGroups;
var spisokDS: TADOQuery;
begin.
spisokDS := TADOQuery. Create (nil);
spisokDS.Connection := DM. Connection;
spisokDS.SQL.Add ('select * from [Группа]');
spisokDS.Open;
spisokDS.First;
groupsComboBox.Clear;
while not spisokDS. Eof do.
begin.
groupsComboBox.Items.Add (spisokDS.FieldByName ('name').AsString);
spisokDS.Next;
end;
spisokDS.Close;
spisokDS.Free;
end;
function TSpisokStudentovForm. getIdGroupByName (Name: string): integer;
var.
idQuery: TADOQuery;
begin.
idQuery := TADOQuery. Create (nil);
idQuery.Connection := DM. Connection;
idQuery.SQL.Add ('select * from [Группа] where name=:group');
idQuery.Parameters.ParamByName ('group').Value := name;
idQuery.Open;
idQuery.First;
Result := idQuery. FieldByName ('id_gruppa').AsInteger;
idQuery.Close;
idQuery.Free;
end;
procedure TSpisokStudentovForm. getStudents;
var group: string;
idQuery: TADOQuery;
id: integer;
begin.
if groupsComboBox. ItemIndex<0 then.
exit;
group := groupsComboBox. Items[groupsComboBox.ItemIndex];
id := getIdGroupByName (group);
studentsQuery.Close;
studentsQuery.SQL.Clear;
studentsQuery.SQL.Add ('SELECT * FROM [Данные студента] LEFT JOIN Группа ON Группа. id_gruppa] = [Данные студента]. id_группа] where [Данные студента]. id_группа]=:id');
studentsQuery.Parameters.ParamByName ('id').Value := id;
studentsQuery.Open;
StudentsDataSource.DataSet := studentsQuery;
studentsGrid.Columns[0]. FieldName :='Фамилия';
studentsGrid.Columns[1]. FieldName :='Имя';
studentsGrid.Columns[2]. FieldName :='Отчество';
studentsGrid.Columns[3]. FieldName :='Номер зачетной книжки';
end;
procedure TSpisokStudentovForm. getunGroup;
var group: string;
idQuery: TADOQuery;
id: integer;
begin.
group := groupsComboBox. Items[groupsComboBox.ItemIndex];
id := getIdGroupByName (group);
ungroupQuery.Close;
ungroupQuery.SQL.Clear;
ungroupQuery.SQL.Add ('SELECT * FROM [Данные студента] LEFT JOIN Группа ON Группа. id_gruppa] = [Данные студента]. id_группа] where ([Данные студента]. id_группа] is not null and [Данные студента]. id_группа]: id) or [Данные студента]. id_группа] is null');
ungroupQuery.Parameters.ParamByName ('id').Value := id;
ungroupQuery.Open;
unGroupDataSource.DataSet := ungroupQuery;
unGroupGrid.Columns[0]. FieldName :='Фамилия';
unGroupGrid.Columns[1]. FieldName :='Имя';
unGroupGrid.Columns[2]. FieldName :='Отчество';
unGroupGrid.Columns[3]. FieldName :='Номер зачетной книжки';
unGroupGrid.Columns[4]. FieldName :='name';
end;
end.
Приложение Б
Файл SpisokPrepodov.pas.
unit SpisokPrepodov;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, DBGridEh, StdCtrls, Mask, DBCtrlsEh, DBLookupEh, DBGridEhGrouping,.
GridsEh, DB, ADODB, DBTables, DMUnit, ExtCtrls, ComCtrls, DBCtrls, EhLibADO;
type.
TSpisokPrepodovForm = class (TForm).
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
DBGridEh1: TDBGridEh;
Label1: TLabel;
PoiskFamEdit: TEdit;
Panel1: TPanel;
FamPrepodLabel: TLabel;
NamePrepLabel: TLabel;
OtchestPrepLabel: TLabel;
FamDBEditEh: TDBEditEh;
NamePrepDBEditEh: TDBEditEh;
OtchestPrepDBEditEh: TDBEditEh;
PageControl2: TPageControl;
TabSheet4: TTabSheet;
DoljnostLabel: TLabel;
DaljnostDBLookupComboboxEh: TDBLookupComboboxEh;
GroupBoxKaf: TGroupBox;
TelKafLabel: TLabel;
KafedraDBLookupComboboxEh: TDBLookupComboboxEh;
NomerKafDBEditEh: TDBEditEh;
TelKafDBEditEh: TDBEditEh;
TabSheet5: TTabSheet;
MobTelPrepLabel: TLabel;
MobTelPrepDBEditEh: TDBEditEh;
TabSheet6: TTabSheet;
Label2: TLabel;
PasteDisPrepButton: TButton;
DBGridEh2: TDBGridEh;
DelDisPrepButton: TButton;
Label3: TLabel;
Label4: TLabel;
KafComboBox: TComboBox;
PrepodsGrid: TDBGridEh;
unKafGrid: TDBGridEh;
PasteButton: TButton;
PrepodDataSource: TDataSource;
unKafDataSource: TDataSource;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
Label5: TLabel;
PoiskKafEdit: TEdit;
procedure KafComboBoxChange (Sender: TObject);
procedure FormActivate (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure PasteButtonClick (Sender: TObject);
procedure PoiskFamEditChange (Sender: TObject);
procedure PoiskKafEditChange (Sender: TObject);
private.
prepodsQuery: TADOQuery;
unKafQuery: TADOQuery;
procedure getKaf;
procedure getPrepods;
procedure getunKaf;
function getIdKafByName (Name: string):integer;
public.
{ Public declarations }.
end;
var.
SpisokPrepodovForm: TSpisokPrepodovForm;
implementation.
{$R *.dfm}.
procedure TSpisokPrepodovForm. KafComboBoxChange (Sender: TObject);
begin.
getPrepods;
getunKaf;
if KafComboBox. ItemIndex>=0 then.
PasteButton.Enabled := true.
else.
PasteButton.Enabled := False;
end;
procedure TSpisokPrepodovForm. PasteButtonClick (Sender: TObject);
var fromKaf, toKaf, fio: string;
id, idprepod: integer;
updateQuery:TADOQuery;
btnResult: integer;
begin.
toKaf := KafComboBox. Items[KafComboBox.ItemIndex];
fromKaf := unKafQuery. FieldByName ('номер').AsString;
fio := unKafQuery. FieldByName ('Фамилия').AsString;
idPrepod := unKafQuery. FieldByName ('dp.id').AsInteger;
btnResult := MessageDlg ('Внимание! Вы точно хотите переместить преподавателя '+fio+' с кафедры '+fromKaf+' на кафедру '+toKaf+'?',.
mtInformation, mbYesNo, 0);
if btnResult=6 then.
begin.
id := getIdKafByName (toKaf);
updateQuery := TADOQuery. Create (nil);
updateQuery.Connection := DM. Connection;
updateQuery.SQL.Add ('update [Преподаватель кафедра] set [id_кафедра]=:id where id_преподаватель=:idPrepod');
updateQuery.Parameters.ParamByName ('id').Value := id;
updateQuery.Parameters.ParamByName ('idPrepod').Value := idPrepod;
updateQuery.ExecSQL;
updateQuery.Close;
updateQuery.Free;
PrepodsQuery.Requery ();
unKafQuery.Requery ();
end;
end;
procedure TSpisokPrepodovForm. PoiskFamEditChange (Sender: TObject);
var.
filter: string;
begin.
if Length (PoiskFamEdit.Text) > 0 then.
begin.
DM.SpiPrepodDataS.Filtered:=true;
filter := 'Фамилия like ''*'+PoiskFamEdit.Text+'*''';
DM.SpiPrepodDataS.Filter:=filter;
end.
else.
begin.
DM.SpiPrepodDataS.Filtered:=false;
DM.SpiPrepodDataS.Filter:='';
end;
end;
procedure TSpisokPrepodovForm. PoiskKafEditChange (Sender: TObject);
var.
filter: string;
begin.
if Length (PoiskKafEdit.Text) > 0 then.
begin.
DM.SpiPrepodDataS.Filtered:=true;
filter := 'Номер like ''*'+PoiskKafEdit.Text+'*''';
DM.SpiPrepodDataS.Filter:=filter;
end.
else.
begin.
DM.SpiPrepodDataS.Filtered:=false;
DM.SpiPrepodDataS.Filter:='';
end;
end;
procedure TSpisokPrepodovForm. FormActivate (Sender: TObject);
begin.
getKaf;
KafComboBox.Text := '';
getPrepods;
getunKaf;
PoiskFamEdit.Text:='';
end;
procedure TSpisokPrepodovForm. FormCreate (Sender: TObject);
begin.
PrepodsQuery := TADOQuery. Create (nil);
PrepodsQuery.Connection := DM. Connection;
unKafQuery := TADOQuery. Create (nil);
unKafQuery.Connection := DM. Connection;
end;
procedure TSpisokPrepodovForm. getKaf;
var spisokDS: TADOQuery;
begin.
spisokDS := TADOQuery. Create (nil);
spisokDS.Connection := DM. Connection;
spisokDS.SQL.Add ('select [Номер] as nomer from [Кафедра]');
spisokDS.Open;
spisokDS.First;
KafComboBox.Clear;
while not spisokDS. Eof do.
begin.
KafComboBox.Items.Add (spisokDS.FieldByName ('nomer').AsString);
spisokDS.Next;
end;
spisokDS.Close;
spisokDS.Free;
end;
function TSpisokPrepodovForm. getIdKafByName (Name: string): integer;
var.
idQuery: TADOQuery;
begin.
idQuery := TADOQuery. Create (nil);
idQuery.Connection := DM. Connection;
idQuery.SQL.Add ('select * from [Кафедра] where [Номер]=:Kaf');
idQuery.Parameters.ParamByName ('Kaf').Value := name;
idQuery.Open;
idQuery.First;
Result := idQuery. FieldByName ('id').AsInteger;
idQuery.Close;
idQuery.Free;
end;
procedure TSpisokPrepodovForm. getPrepods;
var Kaf: string;
idQuery: TADOQuery;
id: integer;
begin.
if KafComboBox. ItemIndex<0 then.
exit;
Kaf := KafComboBox. Items[KafComboBox.ItemIndex];
id := getIdKafByName (Kaf);
PrepodsQuery.Close;
PrepodsQuery.SQL.Clear;
PrepodsQuery.SQL.Add ('SELECT * FROM [Данные преподавателя] dp RIGHT JOIN (Кафедра LEFT JOIN [Преподаватель кафедра] pk ON Кафедра. id] = pk. id_кафедра]) ON dp. id] = pk. id_преподаватель] where pk. id_кафедра=:id');
PrepodsQuery.Parameters.ParamByName ('id').Value := id;
PrepodsQuery.Open;
PrepodDataSource.DataSet := PrepodsQuery;
PrepodsGrid.Columns[0]. FieldName :='Фамилия';
PrepodsGrid.Columns[1]. FieldName :='Имя';
PrepodsGrid.Columns[2]. FieldName :='Отчество';
PrepodsGrid.Columns[3]. FieldName :='Кафедра';
end;
procedure TSpisokPrepodovForm. getunKaf;
var Kaf: string;
idQuery: TADOQuery;
id: integer;
begin.
Kaf := KafComboBox. Items[KafComboBox.ItemIndex];
id := getIdKafByName (Kaf);
unKafQuery.Close;
unKafQuery.SQL.Clear;
unKafQuery.SQL.Add ('SELECT * FROM [Данные преподавателя] dp RIGHT JOIN (Кафедра LEFT JOIN [Преподаватель кафедра] pk ON Кафедра. id] = pk. id_кафедра]) ON dp. id] = pk. id_преподаватель] WHERE (pk. id_кафедра] Is Not Null And pk. id_кафедра]: id)');
unKafQuery.Parameters.ParamByName ('id').Value := id;
unKafQuery.Open;
unKafDataSource.DataSet := unKafQuery;
unKafGrid.Columns[0]. FieldName :='Фамилия';
unKafGrid.Columns[1]. FieldName :='Имя';
unKafGrid.Columns[2]. FieldName :='Отчество';
unKafGrid.Columns[3]. FieldName :='Кафедра';
unKafGrid.Columns[4]. FieldName :='Должность';
end;
end.