Главная страницаОбратная связьКарта сайта

Хранимые процедуры

Оформил: 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.

Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Хранимые процедуры", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info