Delphi World - Хранимые процедуры
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Хранимые процедуры

Оформил: DeeCo

procedure TForm1.BGetClick(Sender: TObject);
begin
  with ProcGetInf do
  begin
    ParamByName('pFam').AsString := FamEdit.Text;
    ParamByName('pNam').AsString := NamEdit.Text;
    ParamByName('pPar').AsString := ParEdit.Text;
    ExecProc;
    if ParamByName('pYear').AsInteger = 0 then
      MessageDlg('В базе данных запись отсутствует', mtError, [mbCancel], 0)
    else
    begin
      SYear.Value := ParamByName('pYear').AsInteger;
      CBDep.Text := ParamByName('pDep').AsString;
      if ParamByName('pSex').AsString = 'м' then
        RGSex.ItemIndex := 0
      else
        RGSex.ItemIndex := 1;
    end;
  end;
end;
Полный текст модуля:
unit UStoreP;
interface
uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, DBTables, DB, Grids, DBGrids, StdCtrls, Spin, ExtCtrls;
type
  TForm1 = class(TForm)
    Database1: TDatabase;
    DataSource1: TDataSource;
    ResLabel: TLabel;
    ProcGetInf: TStoredProc;
    ProcSetInf: TStoredProc;
    Table1: TTable;
    Query1: TQuery;
    DataSource2: TDataSource;
    Query1PFAM: TStringField;
    Query1PNAM: TStringField;
    Query1PPAR: TStringField;
    Query1PYEAR: TIntegerField;
    Query1PSEX: TStringField;
    PTop: TPanel;
    LFam: TLabel;
    LNam: TLabel;
    LPar: TLabel;
    FamEdit: TEdit;
    BGet: TButton;
    BSet: TButton;
    LSex: TLabel;
    LYear: TLabel;
    LDep: TLabel;
    SYear: TSpinEdit;
    RGSex: TRadioGroup;
    BExit: TButton;
    CBDep: TComboBox;
    NamEdit: TEdit;
    ParEdit: TEdit;
    PMid: TPanel;
    DBGrid2: TDBGrid;
    CBDep2: TComboBox;
    Label1: TLabel;
    PButtom: TPanel;
    DBGrid1: TDBGrid;
    Titul1: TLabel;
    Titul2: TLabel;
    Titul3: TLabel;
    Table1NUM: TSmallintField;
    Table1DEP: TStringField;
    Table1FAM: TStringField;
    Table1NAM: TStringField;
    Table1PAR: TStringField;
    Table1YEAR_B: TSmallintField;
    Table1SEX: TStringField;
    procedure BGetClick(Sender: TObject);
    procedure FamEditEnter(Sender: TObject);
    procedure BSetClick(Sender: TObject);
    procedure BExitClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CBDep2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.DFM}

procedure TForm1.BGetClick(Sender: TObject);
begin
  with ProcGetInf do
  begin
    ParamByName('pFam').AsString := FamEdit.Text;
    ParamByName('pNam').AsString := NamEdit.Text;
    ParamByName('pPar').AsString := ParEdit.Text;
    ExecProc;
    if ParamByName('pYear').AsInteger = 0 then
      MessageDlg('В базе данных запись отсутствует', mtError, [mbCancel], 0)
    else
    begin
      SYear.Value := ParamByName('pYear').AsInteger;
      CBDep.Text := ParamByName('pDep').AsString;
      if ParamByName('pSex').AsString = 'м' then
        RGSex.ItemIndex := 0
      else
        RGSex.ItemIndex := 1;
    end;
  end;
end;

procedure TForm1.FamEditEnter(Sender: TObject);
begin
  SYear.Value := 0;
  CBDep.Text := '';
  RGSex.ItemIndex := -1;
end;

procedure TForm1.BSetClick(Sender: TObject);
begin
  with ProcSetInf do
  begin
    ParamByName('pFam').AsString := FamEdit.Text;
    ParamByName('pNam').AsString := NamEdit.Text;
    ParamByName('pPar').AsString := ParEdit.Text;
    ParamByName('pDep').AsString := CBDep.Text;
    ParamByName('pYear').AsInteger := SYear.Value;
    if RGSex.ItemIndex = 1 then
      ParamByName('pSex').AsString := 'ж'
    else
      ParamByName('pSex').AsString := 'м';
    ExecProc;
    if ParamByName('mess').AsInteger = 0 then
      MessageDlg('В базе данных запись отсутствует',
        mtError, [mbCancel], 0)
    else
    begin
      MessageDlg('Запись проведена успешно', mtCustom, [mbOk], 0);
      Table1.Close;
      Table1.Open;
      Query1.Close;
      Query1.Open;
    end;
  end;
end;

procedure TForm1.BExitClick(Sender: TObject);
begin
  Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CBDep2.ItemIndex := 0;
  CBDep2Change(Sender);
end;

procedure TForm1.CBDep2Change(Sender: TObject);
begin
  Query1.Close;
  Query1.ParamByName('pDep').AsString := CBDep2.Text;
  Query1.Open;
end;
end.
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования