⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event1.pas

📁 Delphi_7.0数据库开发源代码。有内容十一章节
💻 PAS
字号:
unit Event1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TfrmEvents = class(TForm)
    GroupBox1: TGroupBox;
    btnOpenDatabase: TButton;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    btnGenerateEvent: TButton;
    Label1: TLabel;
    btnRegisterEvents: TButton;
    btnClearEvents: TButton;
    lbReceived: TListBox;
    ebEvent: TEdit;
    moRegister: TMemo;
    btnCloseDatabase: TButton;
    procedure btnClearEventsClick(Sender: TObject);
    procedure btnGenerateEventClick(Sender: TObject);
    procedure btnRegisterEventsClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure btnOpenDatabaseClick(Sender: TObject);
    procedure btnCloseDatabaseClick(Sender: TObject);
  end;

var
  frmEvents: TfrmEvents;

implementation

uses Event2, DB, IBDatabase, IBStoredProc;

{$R *.dfm}

procedure TfrmEvents.btnClearEventsClick(Sender: TObject);
begin
  lbReceived.Clear;
end;

procedure TfrmEvents.btnGenerateEventClick(Sender: TObject);
begin
  with dmEvents do
  begin
    IBTransaction1.StartTransaction;   //启动事务
    StoredProc1.Prepare;
    StoredProc1.Params[0].AsString := ebEvent.Text; //指定事件名到存储过程
    StoredProc1.ExecProc;        //执行存储过程
    IBTransaction1.Commit;       //永远存储修改
  end;
end;

procedure TfrmEvents.btnRegisterEventsClick(Sender: TObject);
begin
  with dmEvents.IBEventAlerter1 do
  begin
    UnregisterEvents; //注册前,先清除已经注册的事件
    Events.Assign(moRegister.Lines);  //指定事件名
    RegisterEvents;         //注册事件
  end;
end;

procedure TfrmEvents.FormDestroy(Sender: TObject);
begin
  with dmEvents do
  begin
    IBEventAlerter1.UnregisterEvents;	//取消已经注册的事件
    Database1.Connected := False;	//关闭数据连接
  end;
  GroupBox2.Enabled := False;
  GroupBox3.Enabled := False;
  GroupBox4.Enabled := False;
  Label1.Enabled := False;
  btnGenerateEvent.Enabled := False;
  btnRegisterEvents.Enabled := False;
  btnClearEvents.Enabled := False;
end;

procedure TfrmEvents.btnOpenDatabaseClick(Sender: TObject);
begin
  dmEvents.Database1.Connected := True;  //真正打开数据库
  //打开数据库后,下面的按钮才被允许
  GroupBox2.Enabled := True;
  GroupBox3.Enabled := True;
  GroupBox4.Enabled := True;
  Label1.Enabled := True;
  btnGenerateEvent.Enabled := True;
  btnRegisterEvents.Enabled := True;
  btnClearEvents.Enabled := True;
  btnCloseDatabase.Enabled := True;
  btnOpenDatabase.Enabled:=False;
end;

procedure TfrmEvents.btnCloseDatabaseClick(Sender: TObject);
begin
//先取消注册到数据库的事件
  dmEvents.IBEventAlerter1.UnregisterEvents;
//再关闭数据
  dmEvents.Database1.Connected := False;
//禁止下面的按钮,因为数据库关闭,无法注册事件,也无法产生事件
  GroupBox2.Enabled := False;
  GroupBox3.Enabled := False;
  GroupBox4.Enabled := False;
  Label1.Enabled := False;
  btnGenerateEvent.Enabled := False;
  btnRegisterEvents.Enabled := False;
  btnClearEvents.Enabled := False;
  btnCloseDatabase.Enabled := False;
  btnOpenDatabase.Enabled := True;
end;

end.

⌨️ 快捷键说明

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