unit2.~pas

来自「这是一个关于delphi数据库方面的源程序」· ~PAS 代码 · 共 86 行

~PAS
86
字号
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, StdCtrls, Grids, DBGrids, DBTables;

type
  TForm1 = class(TForm)
    Table1: TTable;
    UpdateSQL1: TUpdateSQL;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Table2: TTable;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DBGrid2: TDBGrid;
    procedure Button1Click(Sender: TObject);
    procedure Table1AfterPost(DataSet: TDataSet);
    procedure Table1AfterInsert(DataSet: TDataSet);
    procedure Table1BeforeDelete(DataSet: TDataSet);
    procedure Nothing;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  bInsert: Boolean;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Table1.Open;
  Table2.Open;
end;

procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
  if bInsert then
  begin
    UpdateSQL1.DatabaseName := 'DBDEMOS';
    UpdateSQL1.Query[ukInsert].ParamByName('Number').Value:=DataSet.FieldValues['Number'];
    UpdateSQL1.Query[ukInsert].ParamByName('Class').Value:=DataSet.FieldValues['Class'];
    try
      UpdateSQL1.Apply(ukInsert);
    except
      on EDataBaseError do Nothing;
    end;
  end;
  bInsert := false;
  Table2.Refresh;
end;

procedure TForm1.Table1AfterInsert(DataSet: TDataSet);
begin
  bInsert:=true;
end;

procedure TForm1.Table1BeforeDelete(DataSet: TDataSet);
begin
    UpdateSQL1.DatabaseName := 'DBDEMOS';
    UpdateSQL1.Query[ukDelete].ParamByName('Number').Value:=DataSet.FieldValues['Number'];
    ShowMessage(UpdateSQL1.SQL[ukDelete].Text);
    ShowMessage(DataSet.FieldValues['Number']);
    try
      UpdateSQL1.Apply(ukDelete);
    except
      on EDataBaseError do Nothing;
    end;
Table2.Refresh;
end;

procedure TForm1.Nothing();
begin
{}
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?