Описание структуры базы данных
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

С точки зрения пользователя, база данных — это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную.

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

В настоящее время существует достаточно большое количество программных систем, позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox) и удаленные (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) базы данных.

В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами: от dBASE до Infomix и Oracle. Delphi также позволяет программисту создавать файлы баз данных в различных форматах, используя различные утилиты. В нашем случае база данных, используемая в программе, создана в системе InterBase, при помощи утилиты IBConsole.

База данных содержит 1 таблицу: ANKETA, описание полей которой приведено ниже.

Nom – поле, которое является ключевым в таблице «ANKETA». Это поле имеет тип данных как числовой – Smallint, и автоматически увеличивает своё значение. Этот тип данных как поле Autoincrement (+).

Fam – Поле предназначенное для хранения фамилии. Тип данных поля: Varchar. Максимально допустимый размер поля – 20 символ.

Name – Поле, предназначенное для хранения имени. Тип данных поля: Varchar. Максимально допустимый размер поля – 15 символ.

Otch – Поле, предназначенное для хранения отчества. Тип данных поля: Varchar. Максимально допустимый размер поля – 15 символ.

Pol – Поле, предназначенное для хранения информации о пола. Тип данных поля: Varchar. Максимально допустимый размер поля – 1 символов.

Rost – Поле, предназначенное для хранения информации о росте. Тип данных поля: Varchar. Максимально допустимый размер поля – 5 символов.

Ves – Поле, предназначенное для хранения информации о весе. Тип данных поля: Varchar. Максимально допустимый размер поля – 5 символов.

Foto – Поле, предназначенное для хранения фотографии. Тип данных поля: BLOB.

DR – Поле, предназначенное для хранения даты рождения. Тип данных поля: DATE.

Ard_str – Поле, предназначенное для хранения информации о стране. Тип данных поля: Varchar. Максимально допустимый размер поля – 25 символов.

Ard_obl – Поле, предназначенное для хранения информации об области. Тип данных поля: Varchar. Максимально допустимый размер поля – 25 символов.

Ard_gor – Поле, предназначенное для хранения информации о городе. Тип данных поля: Varchar. Максимально допустимый размер поля – 15 символов.

Ard_yl – Поле, предназначенное для хранения информации о улице. Тип данных поля: Varchar. Максимально допустимый размер поля – 20 символов.

Ard_dom – Поле, предназначенное для хранения информации о доме. Тип данных поля: Varchar. Максимально допустимый размер поля – 5 символов.

Ard_kv – Поле, предназначенное для хранения информации о квартире. Тип данных поля: Varchar. Максимально допустимый размер поля – 5 символов.

Ard_ind – Поле, предназначенное для хранения информации о индексе. Тип данных поля: Varchar. Максимально допустимый размер поля – 6 символов.

Ard_tel – Поле, предназначенное для хранения информации о телефоне. Тип данных поля: Varchar. Максимально допустимый размер поля – 15 символов.

Mroz_str – Поле, предназначенное для хранения информации о стране, месте рождения. Тип данных поля: Varchar. Максимально допустимый размер поля – 25 символов.

Mroz_obl – Поле, предназначенное для хранения информации об области, месте рождения. Тип данных поля: Varchar. Максимально допустимый размер поля – 25 символов.

Mroz_gor – Поле, предназначенное для хранения информации о городе, месте рождения. Тип данных поля: Varchar. Максимально допустимый размер поля – 15 символов.

Grazdan – Поле, предназначенное для хранения информации о гражданстве. Тип данных поля: Varchar. Максимально допустимый размер поля – 15 символов.

Obrazov – Поле, предназначенное для хранения информации об образовании. Тип данных поля: Varchar. Максимально допустимый размер поля – 30 символов.

Nom_strax_sved – Поле, предназначенное для хранения информации о номере страхового сведетельства. Тип данных поля: Varchar. Максимально допустимый размер поля – 13 символов.

INN – Поле, предназначенное для хранения информации о ИНН. Тип данных поля: Varchar. Максимально допустимый размер поля – 12 символов.

Tryd_kn_seriya – Поле, предназначенное для хранения информации о серии трудовой книжки. Тип данных поля: Varchar. Максимально допустимый размер поля – 6 символов.

Tryd_kn_nomer – Поле, предназначенное для хранения информации о номере трудовой книжки. Тип данных поля: Varchar. Максимально допустимый размер поля – 20 символов.

Paspost_nom – Поле, предназначенное для хранения информации о номере паспорта. Тип данных поля: Varchar. Максимально допустимый размер поля – 4 символов.

Paspost_ ser – Поле, предназначенное для хранения информации о серии паспорта. Тип данных поля: Varchar. Максимально допустимый размер поля – 6 символов.

Paspost_vidan – Поле, предназначенное для хранения информации о том кем паспорт был выдан. Тип данных поля: Varchar. Максимально допустимый размер поля – 50 символов.

Paspost_data – Поле, предназначенное для хранения информации о том когда паспорт был выдан. Тип данных поля: DATE.



Экспериментальный раздел

Описание процесса отладки

 

Успешное завершение процесса компиляции не означает, что в программе нет ошибок. Убедиться, что программа работает правильно можно только в процессе проверки ее работоспособности, который называется тестирование.

Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свидетельствует о том, что в программе есть алгоритмические ошибки. Процесс поиска и устранение ошибок называется отладкой.

    Delphi обладает мощнейшим, встроенным в редактор графическим отладчиком, позволяющим находить и устранять ошибки в коде. Мы можем установить точки остановки, проверить и изменить переменные, при помощи пошагового выполнения в точности понять поведение программы.

В процессе отладки программы я столкнулся с ошибкой. Эта ошибка возникла, когда программой не была найдена база данных.

Исправил я эту ошибку, создав папку «BD» и поместил в неё базу «BD». Далее в свойстве DatabaseName компонента IBDatabase1 я написал следуюшее:

BD\BD.gdb

Программа автоматически определяет свое место положения и сообщает компоненту IBDatabase путь до базы данных.

Характеристика программы

 

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

При запуске программы появляется окошко, содержащее компоненты визуализирующие содержимое базы данных, кнопки, с помощью которых можно добавлять, изменять, удалять записи в базе данных.

 


Окно о программе


Инструкция пользователя

 

Для работы в данной программе вам не потребуются большие навыки работы с Windows-приложениями. Сам интерфейс программы прост и ясен.

Для начала работы необходимо в корневой директории диска открыть папку «Анкетные данные», в которой находиться программа и запустить файл Анкетные данные.exe. При запуске программы на экране появиться главное окно в котором вы можите просмотреть все личные данные. При нажатии на кнопку «Поиск» можно произвести поиск по трем полям: фамилия, пол, ИНН. При нажатии на кнопку «Сортировка» можно провести сортировку по полям указанным в программе.

При нажатии на вкладку «Редактировать» возникает окошко с данными той записи, на которой стоит указатель. Здесь можно изменить информацию любую информацию, имеющуюся в базе данных.

При нажатии на кнопку «Фильтрация» можно включить или выключить фильтр. Фильтрация происходит по всем полям базы данных.

При выборе вкладки «Добавление записи» можно добавить в базу свои анкетные данные предварительно заполнив все поля после чего нажимаем на кнопку «Добавить» поля добавляются. Также можно добавить свою фотографию нажав на кнопку «Добавить фото» и прописать путь к своей фотографии.

При нажатии на вкладку «Редактирование записей» возникает окошко с данными той записи, на которой стоит указатель. Здесь можно изменить информацию любую информацию, имеющуюся в базе данных.

Чтобы вывести распечатать анкетные данные в главном окне выбираем нужное поле нажимаем кнопку «Отчет» и распечатываем.

При нажатии на кнопку «О программе» на панели сверху, возникает окно с информацией о разработчике данного программного продукта.



Заключение

 

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий.

Программный продукт, разработанный в рамках данного курсового проекта, предназначается для проектирования баз данных и соответствующего приложение для автоматизации ведения кадрового учёта некоторого предприятия.

Программа имеет возможности фильтровать записи, осуществлять поиск необходимой записи, печатать записи, содержащиеся в базе.



Литература

 

1. Бобровский С.И. Delphi7. Учебный курс.- СПб.: Питер.2004.

2. Избачков Ю. С., Петров В. Н. Информационные системы: Учебник. - СПб.: Питер, 2005.

3. Волков Ю.С., Петров В.Н. Информационные системы. - СПб.: Питер. 2005.

4. Рудаков А. В. Технология разработки программных продуктов: Учеб. пособие. – М.: Издательский центр «Академия», 2005.

5. Стандартная документация Delphi.


Приложение

Основной модуль приложения

 

program Project1;

uses

 Forms,

 Unit1 in 'Unit1.pas' {Form1},

 Unit2 in 'Unit2.pas' {DataModule2: TDataModule},

 Unit3 in 'Unit3.pas' {Form3},

 Unit4 in 'Unit4.pas' {Form4},

 Unit5 in 'Unit5.pas' {Form5};

{$R *.res}

begin

 Application.Initialize;

 Application.Title := 'Àíêåòíûå äàííûå';

 Application.CreateForm(TForm1, Form1);

 Application.CreateForm(TForm4, Form4);

 Application.CreateForm(TDataModule2, DataModule2);

 Application.CreateForm(TForm3, Form3);

 Application.CreateForm(TForm5, Form5);

 Application.Run;

end.

 

Модуль хранения невизуальных компонентов

 

unit Unit2;

interface

uses

 SysUtils, Classes, IBDatabase, DB;

type

 TDataModule2 = class(TDataModule)

IBDatabase1: TIBDatabase;

IBTransaction1: TIBTransaction;

 private

{ Private declarations }

 public

{ Public declarations }

 end;

var

 DataModule2: TDataModule2;

implementation

{$R *.dfm}

end.

 

Модуль основной формы

 

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, DB, Grids, DBGrids, IBCustomDataSet, IBTable, ExtCtrls,

 StdCtrls, Mask, DBCtrls, XPMan, Menus, IBQuery, ComCtrls, ExtDlgs;

 

type

 TForm1 = class(TForm)

DataSource1: TDataSource;

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

XPManifest1: TXPManifest;

OpenDialog1: TOpenDialog;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

IBQuery1: TIBQuery;

IBQuery2: TIBQuery;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

GroupBox4: TGroupBox;

Label19: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Edit18: TEdit;

Edit20: TEdit;

Edit21: TEdit;

Edit22: TEdit;

GroupBox5: TGroupBox;

Label24: TLabel;

Label25: TLabel;

Edit23: TEdit;

Edit24: TEdit;

GroupBox2: TGroupBox;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Edit13: TEdit;

Edit15: TEdit;

Edit14: TEdit;

GroupBox3: TGroupBox;

Label17: TLabel;

Label18: TLabel;

Label20: TLabel;

Edit16: TEdit;

Edit17: TEdit;

Edit19: TEdit;

GroupBox6: TGroupBox;

Label28: TLabel;

Label29: TLabel;

Edit27: TEdit;

Edit28: TEdit;

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label26: TLabel;

Label27: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit5: TEdit;

Edit4: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit25: TEdit;

Edit26: TEdit;

Button1: TButton;

Button3: TButton;

TabSheet3: TTabSheet;

IBQuery1NOM: TSmallintField;

IBQuery1FAM: TIBStringField;

IBQuery1NAME: TIBStringField;

IBQuery1OTCH: TIBStringField;

IBQuery1POL: TIBStringField;

IBQuery1ROST: TIBStringField;

IBQuery1VES: TIBStringField;

IBQuery1FOTO: TBlobField;

IBQuery1DR: TDateField;

IBQuery1ADR_STR: TIBStringField;

IBQuery1ADR_OBL: TIBStringField;

IBQuery1ADR_GOR: TIBStringField;

IBQuery1ADR_YL: TIBStringField;

IBQuery1ADR_DOM: TIBStringField;

IBQuery1ADR_KV: TIBStringField;

IBQuery1ADR_IND: TIBStringField;

IBQuery1ADR_TEL: TIBStringField;

IBQuery1MROZ_STR: TIBStringField;

IBQuery1MROZ_OBL: TIBStringField;

IBQuery1MROZ_GOR: TIBStringField;

IBQuery1GRAZDAN: TIBStringField;

IBQuery1OBRAZOV: TIBStringField;

IBQuery1NOM_STRAX_SVED: TIBStringField;

IBQuery1INN: TIBStringField;

IBQuery1TRYD_KN_SERIYA: TIBStringField;

IBQuery1TRYD_KN_NOMER: TIBStringField;

IBQuery1PASPOST_NOM: TIBStringField;

IBQuery1PASPOST_SER: TIBStringField;

IBQuery1PASPOST_VIDAN: TIBStringField;

IBQuery1PASPOST_DATA: TDateField;

GroupBox8: TGroupBox;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label36: TLabel;

Label37: TLabel;

Label38: TLabel;

Label39: TLabel;

GroupBox9: TGroupBox;

Label40: TLabel;

Label41: TLabel;

GroupBox10: TGroupBox;

Label42: TLabel;

Label43: TLabel;

Label44: TLabel;

GroupBox11: TGroupBox;

Label45: TLabel;

Label46: TLabel;

Label47: TLabel;

Label48: TLabel;

Label49: TLabel;

Label50: TLabel;

Label51: TLabel;

Label52: TLabel;

GroupBox12: TGroupBox;

Label53: TLabel;

Label54: TLabel;

Label55: TLabel;

Label56: TLabel;

GroupBox13: TGroupBox;

Label57: TLabel;

Label58: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

DBEdit8: TDBEdit;

DBEdit9: TDBEdit;

DBEdit10: TDBEdit;

DBEdit11: TDBEdit;

DBEdit12: TDBEdit;

DBEdit13: TDBEdit;

DBEdit14: TDBEdit;

DBEdit15: TDBEdit;

DBEdit16: TDBEdit;

DBEdit17: TDBEdit;

DBEdit18: TDBEdit;

DBEdit19: TDBEdit;

DBEdit20: TDBEdit;

DBEdit21: TDBEdit;

DBEdit22: TDBEdit;

DBEdit23: TDBEdit;

DBEdit24: TDBEdit;

DBEdit25: TDBEdit;

DBEdit26: TDBEdit;

DBEdit27: TDBEdit;

DBEdit28: TDBEdit;

GroupBox7: TGroupBox;

ComboBox1: TComboBox;

Edit500: TEdit;

Button2: TButton;

DBNavigator3: TDBNavigator;

IBQueryFoto: TIBQuery;

OpenPictureDialog1: TOpenPictureDialog;

DBImage2: TDBImage;

DBImage1: TDBImage;

GroupBox14: TGroupBox;

Label59: TLabel;

Label60: TLabel;

Label61: TLabel;

Label62: TLabel;

Label63: TLabel;

Label64: TLabel;

Label65: TLabel;

Label66: TLabel;

Label67: TLabel;

Label68: TLabel;

Edit29: TEdit;

Edit30: TEdit;

Edit31: TEdit;

Edit32: TEdit;

Edit33: TEdit;

Edit34: TEdit;

Edit35: TEdit;

Edit36: TEdit;

Edit37: TEdit;

GroupBox15: TGroupBox;

Label69: TLabel;

Label70: TLabel;

Edit38: TEdit;

Edit39: TEdit;

GroupBox16: TGroupBox;

Label71: TLabel;

Label72: TLabel;

Label73: TLabel;

Edit40: TEdit;

Edit41: TEdit;

Edit42: TEdit;

GroupBox17: TGroupBox;

Label74: TLabel;

Label75: TLabel;

Label76: TLabel;

Label77: TLabel;

Label78: TLabel;

Label79: TLabel;

Label80: TLabel;

Label81: TLabel;

Edit43: TEdit;

Edit44: TEdit;

Edit45: TEdit;

Edit46: TEdit;

Edit47: TEdit;

Edit48: TEdit;

Edit49: TEdit;

Edit50: TEdit;

GroupBox18: TGroupBox;

Label82: TLabel;

Label83: TLabel;

Edit51: TEdit;

Edit52: TEdit;

GroupBox19: TGroupBox;

Label84: TLabel;

Label85: TLabel;

Label86: TLabel;

Label87: TLabel;

Edit53: TEdit;

Edit54: TEdit;

Edit55: TEdit;

Edit56: TEdit;

Button4: TButton;

IBQuery3: TIBQuery;

DBImage3: TDBImage;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

Button5: TButton;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

IBQuery4: TIBQuery;

N18: TMenuItem;

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

  procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure IBQuery1AfterScroll(DataSet: TDataSet);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N18Click(Sender: TObject);

 private

{ Private declarations }

 public

{ Public declarations }

 end;

 

var

 Form1: TForm1;

 

implementation

 

uses Unit2, Unit3, Unit4, Unit5;

 

{$R *.dfm}

 

procedure TForm1.FormDestroy(Sender: TObject);

begin

IBQuery1.Close;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

if OpenPictureDialog1.Execute Then

 begin

DBImage2.Picture.LoadFromFile(OpenPictureDialog1.FileName);

IBQueryFoto.ParamByName('FOTO').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);

IBQueryFoto.ParamByName('Nom').Value := IBQuery1.FieldByName('Nom').Value;

Try

IBQueryFoto.ExecSQL;

Except

DataModule2.IBTransaction1.RollbackRetaining;

ShowMessage('Ошибка установки фотографии');

Exit;

End;

 DataModule2.IBTransaction1.CommitRetaining;

 IBQuery1.Close;

 IBQuery1.Open;

 ShowMessage('Фотография установлена');

end;

end;

 

procedure TForm1.N2Click(Sender: TObject);

begin

close;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var

 s : String;

begin

 case ComboBox1.ItemIndex of

  0 : S := 'Fam';

  1 : S := 'Pol';

  2 : S := 'INN';

 end;

IBQuery1.Locate(S, Edit500.Text,[loPartialKey]);

end;

 

procedure TForm1.N3Click(Sender: TObject);

begin

Form3.QuickRep1.Preview;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

IBQuery2.Params.ParamByName('Fam').Value:=Edit1.Text;

IBQuery2.Params.ParamByName('Name').Value:=Edit2.Text;

IBQuery2.Params.ParamByName('Otch').Value:=Edit3.Text;

IBQuery2.Params.ParamByName('Pol').Value:=Edit4.Text;

IBQuery2.Params.ParamByName('DR').Value:=Edit5.Text;

IBQuery2.Params.ParamByName('Ves').Value:=Edit6.Text;

IBQuery2.Params.ParamByName('Rost').Value:=Edit7.Text;

IBQuery2.Params.ParamByName('Adr_str').Value:=Edit8.Text;

IBQuery2.Params.ParamByName('Adr_obl').Value:=Edit9.Text;

IBQuery2.Params.ParamByName('Adr_gor').Value:=Edit10.Text;

IBQuery2.Params.ParamByName('Adr_yl').Value:=Edit11.Text;

IBQuery2.Params.ParamByName('Adr_dom').Value:=Edit12.Text;

IBQuery2.Params.ParamByName('Adr_kv').Value:=Edit13.Text;

IBQuery2.Params.ParamByName('Adr_ind').Value:=Edit14.Text;

IBQuery2.Params.ParamByName('Adr_tel').Value:=Edit15.Text;

IBQuery2.Params.ParamByName('Mroz_str').Value:=Edit16.Text;

IBQuery2.Params.ParamByName('Mroz_obl').Value:=Edit17.Text;

IBQuery2.Params.ParamByName('Paspost_nom').Value:=Edit18.Text;

IBQuery2.Params.ParamByName('Mroz_gor').Value:=Edit19.Text;

IBQuery2.Params.ParamByName('Paspost_ser').Value:=Edit20.Text;

IBQuery2.Params.ParamByName('Paspost_vidan').Value:=Edit21.Text;

IBQuery2.Params.ParamByName('Paspost_data').Value:=Edit22.Text;

IBQuery2.Params.ParamByName('Tryd_kn_seriya').Value:=Edit23.Text;

IBQuery2.Params.ParamByName('Tryd_kn_nomer').Value:=Edit24.Text;

IBQuery2.Params.ParamByName('Obrazov').Value:=Edit25.Text;

IBQuery2.Params.ParamByName('Grazdan').Value:=Edit26.Text;

IBQuery2.Params.ParamByName('Nom_strax_sved').Value:=Edit27.Text;

IBQuery2.Params.ParamByName('INN').Value:=Edit28.Text;

try

IBQuery2.ExecSQL;

Except

DataModule2.IBTransaction1.RollbackRetaining;

ShowMessage('Невозможно передать запись');

Exit;

end;

DataModule2.IBTransaction1.CommitRetaining;

ShowMessage('Запись добавлена');

IBQuery1.Close;

IBQuery1.Open;

end;

 

procedure TForm1.Button4Click(Sender: TObject);

begin

if MessageDlg('Обновить анкетные данные?', mtConfirmation, [mbYes, mbNo],0)=mrYes then

begin

IBQuery4.Params.ParamByName('Nom').Value:=IBQuery1NOM.Value;

IBQuery4.Params.ParamByName('Fam').Value:=Edit29.Text;

IBQuery4.Params.ParamByName('Name').Value:=Edit30.Text;

IBQuery4.Params.ParamByName('Otch').Value:=Edit31.Text;

IBQuery4.Params.ParamByName('Pol').Value:=Edit33.Text;

IBQuery4.Params.ParamByName('DR').Value:=Edit32.Text;

IBQuery4.Params.ParamByName('Ves').Value:=Edit34.Text;

IBQuery4.Params.ParamByName('Rost').Value:=Edit35.Text;

IBQuery4.Params.ParamByName('Adr_str').Value:=Edit43.Text;

IBQuery4.Params.ParamByName('Adr_obl').Value:=Edit44.Text;

IBQuery4.Params.ParamByName('Adr_gor').Value:=Edit45.Text;

IBQuery4.Params.ParamByName('Adr_yl').Value:=Edit46.Text;

IBQuery4.Params.ParamByName('Adr_dom').Value:=Edit47.Text;

IBQuery4.Params.ParamByName('Adr_kv').Value:=Edit48.Text;

IBQuery4.Params.ParamByName('Adr_ind').Value:=Edit50.Text;

IBQuery4.Params.ParamByName('Adr_tel').Value:=Edit49.Text;

IBQuery4.Params.ParamByName('Mroz_str').Value:=Edit40.Text;

IBQuery4.Params.ParamByName('Mroz_obl').Value:=Edit41.Text;

IBQuery4.Params.ParamByName('Paspost_nom').Value:=Edit53.Text;

IBQuery4.Params.ParamByName('Mroz_gor').Value:=Edit42.Text;

IBQuery4.Params.ParamByName('Paspost_ser').Value:=Edit54.Text;

IBQuery4.Params.ParamByName('Paspost_vidan').Value:=Edit55.Text;

IBQuery4.Params.ParamByName('Paspost_data').Value:=Edit56.Text;

IBQuery4.Params.ParamByName('Tryd_kn_seriya').Value:=Edit51.Text;

IBQuery4.Params.ParamByName('Tryd_kn_nomer').Value:=Edit52.Text;

IBQuery4.Params.ParamByName('Obrazov').Value:=Edit36.Text;

IBQuery4.Params.ParamByName('Grazdan').Value:=Edit37.Text;

IBQuery4.Params.ParamByName('Nom_strax_sved').Value:=Edit38.Text;

IBQuery4.Params.ParamByName('INN').Value:=Edit39.Text;

try

IBQuery4.ExecSQL;

Except

DataModule2.IBTransaction1.RollbackRetaining;

ShowMessage('Запись не добавлена');

exit;

end;

DataModule2.IBTransaction1.CommitRetaining;

ShowMessage('Запись обновлена');

IBQuery1.Close;

IBQuery1.Open;

end;

end;

 

procedure TForm1.IBQuery1AfterScroll(DataSet: TDataSet);

begin

 if IBQuery1.FieldValues['Fam']<> null then

 Edit29.Text:=IBQuery1.FieldValues['Fam'];

 

 if IBQuery1.FieldValues['Name']<> null then

 Edit30.Text:=IBQuery1.FieldValues['Name'];

 

 if IBQuery1.FieldValues['Otch']<> null then

 Edit31.Text:=IBQuery1.FieldValues['Otch'];

 

 if IBQuery1.FieldValues['Pol']<> null then

 Edit33.Text:=IBQuery1.FieldValues['Pol'];

 

 if IBQuery1.FieldValues['DR']<> null then

 Edit32.Text:=IBQuery1.FieldValues['DR'];

 

 if IBQuery1.FieldValues['Ves']<> null then

 Edit34.Text:=IBQuery1.FieldValues['Ves'];

 

 if IBQuery1.FieldValues['Rost']<> null then

 Edit35.Text:=IBQuery1.FieldValues['Rost'];

 

 if IBQuery1.FieldValues['Adr_str']<> null then

 Edit43.Text:=IBQuery1.FieldValues['Adr_str'];

 

 if IBQuery1.FieldValues['Adr_obl']<> null then

 Edit44.Text:=IBQuery1.FieldValues['Adr_obl'];

 

 if IBQuery1.FieldValues['Adr_gor']<> null then

 Edit45.Text:=IBQuery1.FieldValues['Adr_gor'];

 

 if IBQuery1.FieldValues['Adr_yl']<> null then

 Edit46.Text:=IBQuery1.FieldValues['Adr_yl'];

 

 if IBQuery1.FieldValues['Adr_dom']<> null then

 Edit47.Text:=IBQuery1.FieldValues['Adr_dom'];

 

 if IBQuery1.FieldValues['Adr_kv']<> null then

 Edit48.Text:=IBQuery1.FieldValues['Adr_kv'];

 

 if IBQuery1.FieldValues['Adr_ind']<> null then

 Edit50.Text:=IBQuery1.FieldValues['Adr_ind'];

 

 if IBQuery1.FieldValues['Adr_tel']<> null then

 Edit49.Text:=IBQuery1.FieldValues['Adr_tel'];

 

 if IBQuery1.FieldValues['Mroz_str']<> null then

 Edit40.Text:=IBQuery1.FieldValues['Mroz_str'];

 

 if IBQuery1.FieldValues['Mroz_obl']<> null then

 Edit41.Text:=IBQuery1.FieldValues['Mroz_obl'];

 

 if IBQuery1.FieldValues['Paspost_nom']<> null then

 Edit53.Text:=IBQuery1.FieldValues['Paspost_nom'];

 

 if IBQuery1.FieldValues['Mroz_gor']<> null then

 Edit42.Text:=IBQuery1.FieldValues['Mroz_gor'];

 

 if IBQuery1.FieldValues['Paspost_ser']<> null then

 Edit54.Text:=IBQuery1.FieldValues['Paspost_ser'];

 

 if IBQuery1.FieldValues['Paspost_vidan']<> null then

 Edit55.Text:=IBQuery1.FieldValues['Paspost_vidan'];

 

 if IBQuery1.FieldValues['Paspost_data']<> null then

 Edit56.Text:=IBQuery1.FieldValues['Paspost_data'];

 

 if IBQuery1.FieldValues['Tryd_kn_seriya']<> null then

 Edit51.Text:=IBQuery1.FieldValues['Tryd_kn_seriya'];

 

 if IBQuery1.FieldValues['Tryd_kn_nomer']<> null then

 Edit52.Text:=IBQuery1.FieldValues['Tryd_kn_nomer'];

 

  if IBQuery1.FieldValues['Obrazov']<> null then

 Edit36.Text:=IBQuery1.FieldValues['Obrazov'];

 

  if IBQuery1.FieldValues['Grazdan']<> null then

 Edit37.Text:=IBQuery1.FieldValues['Grazdan'];

 

  if IBQuery1.FieldValues['Nom_strax_sved']<> null then

 Edit38.Text:=IBQuery1.FieldValues['Nom_strax_sved'];

 

  if IBQuery1.FieldValues['INN']<> null then

 Edit39.Text:=IBQuery1.FieldValues['INN'];

end;

 

procedure TForm1.N5Click(Sender: TObject);

begin

Form4.Notebook1.PageIndex := 0;

Form4.GroupBox1.Caption := ' По фамилии: ';

Form4.ShowModal;

end;

 

procedure TForm1.N6Click(Sender: TObject);

begin

Form4.Notebook1.PageIndex := 1;

Form4.GroupBox1.Caption := ' По полу: ';

Form4.ShowModal;

end;

 

procedure TForm1.N7Click(Sender: TObject);

begin

Form4.Notebook1.PageIndex := 2;

Form4.GroupBox1.Caption := ' По дате рождения: ';

Form4.ShowModal;

end;

 

procedure TForm1.N9Click(Sender: TObject);

begin

IBQuery1.Close;

IBQuery1.SQL.Clear;

IBQuery1.SQL.Add('select * from anketa order by fam');

IBQuery1.Open;

end;

 

procedure TForm1.N10Click(Sender: TObject);

begin

IBQuery1.Close;

IBQuery1.SQL.Clear;

IBQuery1.SQL.Add('select * from anketa order by dr');

IBQuery1.Open;

end;

 

procedure TForm1.N11Click(Sender: TObject);

begin

IBQuery1.Close;

IBQuery1.SQL.Clear;

IBQuery1.SQL.Add('select * from anketa order by rost');

IBQuery1.Open;

end;

 

procedure TForm1.Button5Click(Sender: TObject);

begin

if OpenPictureDialog1.Execute Then

 begin

DBImage3.Picture.LoadFromFile(OpenPictureDialog1.FileName);

IBQueryFoto.ParamByName('FOTO').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);

IBQueryFoto.ParamByName('Nom').Value := IBQuery1.FieldByName('Nom').Value;

Try

IBQueryFoto.ExecSQL;

Except

DataModule2.IBTransaction1.RollbackRetaining;

ShowMessage('Ошибка установки фотографии');

Exit;

End;

 DataModule2.IBTransaction1.CommitRetaining;

 IBQuery1.Close;

 IBQuery1.Open;

 ShowMessage('Фотография установлена');

end;

end;

 

 

procedure TForm1.N13Click(Sender: TObject);

begin

 PageControl1.ActivePageIndex := 1;

end;

 

procedure TForm1.N14Click(Sender: TObject);

begin

 PageControl1.ActivePageIndex := 2;

end;

 

procedure TForm1.N15Click(Sender: TObject);

begin

if MessageBox(Handle,'Вы действительно хотите удалить запись?','Подтверждение удаления', MB_YESNO or MB_ICONWARNING)=mrYes then

 begin

 IBQuery3.ParamByName('NOM').Value := IBQuery1.FieldByName('NOM').Value;

 Try

IBQuery3.ExecSQL;

 Except

DataModule2.IBTransaction1.RollbackRetaining;

MessageBox(Handle,'Невозможно удалить запись.','Ошибка удаления записи', MB_OK or MB_ICONERROR);

Exit;

 End;

 DataModule2.IBTransaction1.CommitRetaining;

 IBQuery1.Close;

 IBQuery1.Open;

 MessageBox(Handle,'Запись удалина.','Событие', MB_OK or MB_ICONINFORMATION);

 end;

end;

 

procedure TForm1.FormActivate(Sender: TObject);

begin

IBQuery1.Open;

end;

 

procedure TForm1.N16Click(Sender: TObject);

begin

Form5.ShowModal;

end;

 

procedure TForm1.N18Click(Sender: TObject);

begin

IBQuery1.Close;

IBQuery1.SQL.Clear;

IBQuery1.SQL.Add('SELECT * FROM ANKETA');

IBQuery1.Open;

end;

 

end.

 

Модуль формы с фильтрацией

 

unit Unit4;

 

interface

 

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ExtCtrls;

 

type

 TForm4 = class(TForm)

GroupBox1: TGroupBox;

Notebook1: TNotebook;

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Button4: TButton;

Button5: TButton;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Edit3: TEdit;

Button6: TButton;

Button7: TButton;

Button8: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

 private

{ Private declarations }

 public

{ Public declarations }

 end;

 

var

 Form4: TForm4;

 

implementation

 

uses Unit1, Unit2, Unit3;

 

{$R *.dfm}

 

procedure TForm4.Button1Click(Sender: TObject);

begin

Form1.IBQuery1.Close;

form1.IBQuery1.SQL.Clear;

Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE Fam='+#39+Edit1.text+#39'');

Form1.IBQuery1.Open;

end;

 

procedure TForm4.Button2Click(Sender: TObject);

begin

Form1.IBQuery1.Close;

form1.IBQuery1.SQL.Clear;

Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA');

Form1.IBQuery1.Open;

end;

 

procedure TForm4.Button3Click(Sender: TObject);

begin

Edit1.Text:='';

end;

 

procedure TForm4.Button5Click(Sender: TObject);

begin

Form1.IBQuery1.Close;

form1.IBQuery1.SQL.Clear;

Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA');

Form1.IBQuery1.Open;

end;

 

procedure TForm4.Button4Click(Sender: TObject);

begin

Form1.IBQuery1.Close;

form1.IBQuery1.SQL.Clear;

if RadioButton1.Checked=true then

Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE POL='+#39+'М'+#39);

if RadioButton2.Checked=true then

Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE POL='+#39+'Ж'+#39);

Form1.IBQuery1.Open;

end;

 

procedure TForm4.Button6Click(Sender: TObject);

begin

Form1.IBQuery1.Close;

form1.IBQuery1.SQL.Clear;

Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE(DR>='+#39+Edit2.text+#39+') and (DR<='+#39+Edit3.text+#39+') ');

Form1.IBQuery1.Open;

end;

 

procedure TForm4.Button8Click(Sender: TObject);

begin

Edit2.Text:='';

Edit3.Text:='';

end;

 

procedure TForm4.Button7Click(Sender: TObject);

begin

Form1.IBQuery1.Close;

form1.IBQuery1.SQL.Clear;

Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA');

Form1.IBQuery1.Open;

end;

 

end.


Дата: 2019-05-28, просмотров: 188.