Skip Navigation LinksНа-языке-Delphi

Исходный код клиентского приложения для базы данных на языке Delphi
 
1. Модуль MainDataModuleUnit.pas (модуль данных)
 
unit MainDataModuleUnit;
 
interface
 
uses
  SysUtils, Classes, DB, ADODB;
 
type
  TMainDataModule = class(TDataModule)
    cnDBTADOConnection;    // объект для соединения с СУБД
    tblTADOTable;                 // объект для отображения таблицы целиком
    dsTDataSource;                 // источник данных для объекта dbgrd в основном окне программы
    qryInsTADOQuery;           // запрос для добавления новой записи в таблицу
    qrySearchTADOQuery;     // запрос для поиска записей в таблице
    dsSearchTDataSource;      // источник данных для объекта DBGrid_Search в окне поиска записей
    qryDelTADOQuery;          // запрос для удаления записей из таблицы
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  MainDataModule: TMainDataModule;
 
implementation
 
{$R *.dfm}
 
end.
 
2. Модуль FormMainUnit.pas (главное окно приложения)
 
unit FormMainUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls;
type
  TFormMain = class(TForm)
    dbgrd: TDBGrid;
    Button_Add_record: TButton;
    Button_Search: TButton;
    Button_Delete: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button_Add_recordClick(Sender: TObject);
    procedure Button_SearchClick(Sender: TObject);
    procedure Button_DeleteClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  FormMain: TFormMain;
 
implementation
 
uses MainDataModuleUnit, FormInputUnit, FormSearchUnit;
 
{$R *.dfm}
 
procedure TFormMain.FormShow(Sender: TObject);
  begin
    dbgrd.DataSource.DataSet.Open;
  end;
 
procedure TFormMain.Button_Add_recordClick(Sender: TObject);
  {Обработчик нажатия кнопки "Добавить запись"}
  begin
    FormInput.showModal;
    dbgrd.DataSource.DataSet.Active:=false;
    dbgrd.DataSource.DataSet.Active:=true;
    MainDataModule.qryIns.Close;
  end;
 
procedure TFormMain.Button_SearchClick(Sender: TObject);
  {Обработчик нажатия кнопки "Поиск записей"}
  begin
    FormSearch.Show;
  end;
 
procedure TFormMain.Button_DeleteClick(Sender: TObject);
  {Обработчик нажатия кнопки "Удалить записи"}
  var
    SQLCommand:AnsiString ;
  begin
    dbgrd.DataSource.DataSet.Active:=true;
    SQLCommand:='delete from Students where Student_id = ' +
      dbgrd.DataSource.DataSet.FieldByName('Student_id').AsString;
    MainDataModule.qryDel.SQL.Text:=SQLCommand;
    MainDataModule.qryDel.ExecSQL;
    dbgrd.DataSource.DataSet.Active:=false;
    dbgrd.DataSource.DataSet.Active:=true;
  end;
 
end.
 
 
3. Модуль FormInputUnit.pas (окно Ввод данных)
 
unit FormInputUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TFormInput = class(TForm)
    Edit_Student_ID: TEdit;
    Edit_Surname: TEdit;
    Edit_Name: TEdit;
    Edit_Date_of_birth: TEdit;
    Edit_Address: TEdit;
    Edit_Group_number: TEdit;
    Edit_Department: TEdit;
    Edit_Subdepartment: TEdit;
    Edit_Speciality_code: TEdit;
    Label_Student_ID: TLabel;
    Label_Surname: TLabel;
    Label_Name: TLabel;
    Label_Date_of_birth: TLabel;
    Label_Address: TLabel;
    Label_Group_number: TLabel;
    Label_Department: TLabel;
    Label_Subdepartment: TLabel;
    Label_Speciality_code: TLabel;
    Button_Add: TButton;
    Button_Cancel: TButton;
    procedure Button_AddClick(Sender: TObject);
    procedure Button_CancelClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  FormInput: TFormInput;
 
implementation
 
uses MainDataModuleUnit;
 
{$R *.dfm}
 
procedure TFormInput.Button_AddClick(Sender: TObject);
  {Обработчик нажатия кнопки "Добавить запись"}
  var
    SQLCommand:AnsiString ;
  Begin
    SQLCommand := 'Insert Into Students values (''' + Edit_Student_ID.Text + ''', ''' +
      Edit_Surname.Text + ''', ''' + Edit_Name.Text + ''', ''' + Edit_Date_of_birth.Text + ''', ''' +
      Edit_Address.Text + ''', ''' + Edit_Group_number.Text + ''', ''' +
      Edit_Department.Text + ''', ''' + Edit_Subdepartment.Text + ''', ''' +
      Edit_Speciality_code.Text + ''')';
      MainDataModule.qryIns.SQL.Text:=SQLCommand;
      MainDataModule.qryIns.ExecSQL;
      Edit_Student_ID.Clear;
      Edit_Surname.Clear;
      Edit_Name.Clear;
      Edit_Date_of_birth.Clear;
      Edit_Address.Clear;
      Edit_Group_number.Clear;
      Edit_Department.Clear;
      Edit_Subdepartment.Clear;
      Edit_Speciality_code.Clear;
      FormInput.Close;
  end;
 
procedure TFormInput.Button_CancelClick(Sender: TObject);
  {Обработчик нажатия кнопки "Отмена"}
  begin
    FormInput.Close;
  end;
 
end.
 
 
4. Модуль FormSearchUnit.pas (окно Поиск записей)
 
unit FormSearchUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids;
 
type
  TFormSearch = class(TForm)
    DBGrid_Search: TDBGrid;
    Edit_Group_number: TEdit;
    Edit_Speciality_code: TEdit;
    Label_Group_number: TLabel;
    Label_Speciality_code: TLabel;
    Button_Search: TButton;
    procedure Button_SearchClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  FormSearch: TFormSearch;
 
implementation
 
uses MainDataModuleUnit;
 
{$R *.dfm}
 
procedure TFormSearch.Button_SearchClick(Sender: TObject);
  {Обработчик нажатия кнопки "Поиск"}
  var
    SQLCommand:AnsiString ;
  begin
    if (Edit_Group_number.Text <> '') or (Edit_Speciality_code.Text <> '') then
      begin
        SQLCommand := 'select * from Students where ';
        if (Edit_Group_number.Text <> '') then
          begin
            SQLCommand:=SQLCommand + 'Group_number = ''' + Edit_Group_number.Text + '''';
            if Edit_Speciality_code.Text <> '' then
              SQLCommand := SQLCommand + ' and ';
          end;
        if (Edit_Speciality_code.Text <> '') then
          SQLCommand:=SQLCommand + 'Speciality_code = ''' + Edit_Speciality_code.Text + '''';
        MainDataModule.qrySearch.SQL.Text:=SQLCommand;
        DBGrid_Search.DataSource.DataSet.Open;
      end
    else
      begin
        SQLCommand := '';
        DBGrid_Search.DataSource.DataSet.Close;
      end;
  end;
 
procedure TFormSearch.FormClose(Sender: TObject; var Action: TCloseAction);
  begin
    MainDataModule.qrySearch.SQL.Text := '';
    Edit_Group_number.Clear;
    Edit_Speciality_code.Clear;
  end;
 
end.
 
 
5. Основная программа
 
program Lab8;
uses
  Forms,
  FormMainUnit in 'FormMainUnit.pas' {FormMain},
  MainDataModuleUnit in 'MainDataModuleUnit.pas' {MainDataModule: TDataModule},
  FormInputUnit in 'FormInputUnit.pas' {FormInput},
  FormSearchUnit in 'FormSearchUnit.pas' {FormSearch};
{$R *.res}
begin
  Application.Initialize;
  Application.CreateForm(TFormMain, FormMain);
  Application.CreateForm(TMainDataModule, MainDataModule);
  Application.CreateForm(TFormInput, FormInput);
  Application.CreateForm(TFormSearch, FormSearch);
  Application.Run;
end.​​