Помощь в написании студенческих работ
Антистрессовый сервис

Заключение. 
Информационная система учета успеваемости студентов деканата "А" для сбора, хранения и обработки информации о студентах

РефератПомощь в написанииУзнать стоимостьмоей работы

Выполненная выпускная квалификационная работа посвящена разработке информационной системы деканата. В процессе создания был разработан интерфейс, ориентированный на конечного пользователя, не обладающего высокой квалификацией в области вычислительной техники. Для обеспечения защиты информации хранимой в БД от несанкционированного проникновения и утечки информации были введены ограничения прав… Читать ещё >

Заключение. Информационная система учета успеваемости студентов деканата "А" для сбора, хранения и обработки информации о студентах (реферат, курсовая, диплом, контрольная)

Выполненная выпускная квалификационная работа посвящена разработке информационной системы деканата. В процессе создания был разработан интерфейс, ориентированный на конечного пользователя, не обладающего высокой квалификацией в области вычислительной техники. Для обеспечения защиты информации хранимой в БД от несанкционированного проникновения и утечки информации были введены ограничения прав доступа пользовательской и административной части.

В результате проведена следующая работа:

  • — построена семантическая модель предметной области, определены и описаны информационные объекты и связи между ними;
  • — разработана схема базы данные на основе построенной модели данных с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.
  • — выбраны программные средства для разработки программного обеспечения на основе проведенного сравнительного анализа по сформулированным критерия;
  • — разработана структура сети для обеспечения надежной работы всех сотрудников системы деканата;
  • — разработан эргономичный интерфейс;
  • — созданы руководства пользователей.

Список использованных источников

  • 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.

Показать весь текст
Заполнить форму текущей работой