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

📄 main.pas

📁 控件名称:WINZEOS.ZIP 2002年08月03日 作者:CapellaDevelopment Zeos系列构件套件包含一组可直接存取Linux知名的免费数据库MySQL、Postgre
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ZTransact, ZPgSqlQuery, ZPgSqlTr, Db, ZQuery, ZConnect, ZPgSqlCon, StdCtrls,
  ZIbSqlQuery, Grids, DBGrids, ExtCtrls, ZDirSql, ZUpdateSql, ZDirPgSql, IniFiles;

const
  strSection = 'Main';
  strDatabase = 'Database';
  strHost = 'Host';
  strLogin = 'Login';
  strPassword = 'Password';

type
  TfrmMain = class(TForm)
    bsDrop: TZBatchSql;
    DataSource1: TDataSource;
    mmStatus: TMemo;
    bsCreate: TZBatchSql;
    DBGrid1: TDBGrid;
    trMain: TZPgSqlTransact;
    mtMonitor: TZMonitor;
    mmEvents: TMemo;
    Label3: TLabel;
    Label4: TLabel;
    lbPIDStatus: TLabel;
    lbPID: TLabel;
    tbMain: TZPgSqlTable;
    dbMain: TZPgSqlDatabase;
    ntMain: TZPgSqlNotify;
    GroupBox1: TGroupBox;
    lbHost: TLabel;
    lbDb: TLabel;
    lbLogin: TLabel;
    lbPswd: TLabel;
    btConnect: TButton;
    btDisconnect: TButton;
    btReset: TButton;
    edHost: TEdit;
    edDatabase: TEdit;
    edLogin: TEdit;
    edPassword: TEdit;
    btSave: TButton;
    GroupBox2: TGroupBox;
    btCreate: TButton;
    btDrop: TButton;
    GroupBox3: TGroupBox;
    brActivate: TButton;
    btSetEvents: TButton;
    btNotify: TButton;
    lbDBStatus: TLabel;
    lbDBConnected: TLabel;
    btOpen: TButton;
    procedure ZPgSqlMonitor1MonitorEvent(Sql, Result: String);
    procedure btConnectClick(Sender: TObject);
    procedure btCreateClick(Sender: TObject);
    procedure btDropClick(Sender: TObject);
    procedure btResetClick(Sender: TObject);
    procedure mtMonitorMonitorEvent(Sql, Result: String);
    procedure brActivateClick(Sender: TObject);
    procedure btNotifyClick(Sender: TObject);
    procedure btDisconnectClick(Sender: TObject);
    procedure btSetEventsClick(Sender: TObject);
    procedure EventAlert(Sender: TObject; Event: String);
    procedure trMainAfterConnect(Sender: TObject);
    procedure trMainAfterDisconnect(Sender: TObject);
    procedure btSaveClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btOpenClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;
  IniFileName: string;
  IniFile: TIniFile;

implementation

{$R *.DFM}

procedure TfrmMain.ZPgSqlMonitor1MonitorEvent(Sql, Result: String);
begin
  mmStatus.Lines.Add(Result);
end;

procedure TfrmMain.btConnectClick(Sender: TObject);
begin
  dbMain.Host:=edHost.Text;
  dbMain.Database:=edDatabase.Text;
  dbMain.Login:=edLogin.Text;
  dbMain.Password:=edPassword.Text;
  ntMain.EventsList.Text:=mmEvents.Text;
  ntMain.Active:=True;
  tbMain.Active:=True;
end;

procedure TfrmMain.btCreateClick(Sender: TObject);
begin
  bsCreate.ExecSql;
  mmStatus.Lines.Append('Table create sucessfully');
end;

procedure TfrmMain.btDropClick(Sender: TObject);
begin
  bsDrop.ExecSql;
  mmStatus.Lines.Append('Table dropped sucessfully');
end;

procedure TfrmMain.btResetClick(Sender: TObject);
begin
  trMain.Reset;
end;

procedure TfrmMain.mtMonitorMonitorEvent(Sql, Result: String);
begin
  if Assigned(mmStatus) then
    mmStatus.Lines.Append(Format('%s ==> %s', [Sql, Result]));
end;

procedure TfrmMain.brActivateClick(Sender: TObject);
begin
  ntMain.Active:=True;
  if not ntMain.Active then
    DatabaseError('Oh-oh.');
end;

procedure TfrmMain.btNotifyClick(Sender: TObject);
begin
  ntMain.DoNotify('TestEvent');
end;

procedure TfrmMain.btDisconnectClick(Sender: TObject);
begin
  dbMain.Disconnect;
end;

procedure TfrmMain.btSetEventsClick(Sender: TObject);
begin
  ntMain.EventsList.Text:=mmEvents.Text;
end;

procedure TfrmMain.EventAlert(Sender: TObject; Event: String);
begin
  SysUtils.Beep;
  if lowercase(Event)='insertrecord' then
    ShowMessage(Format('Our spies report that backend PID %d just inserted a record on relation "blah".', [TDirPgSqlNotify(ntMain.Handle).Handle.be_pid]))
  else
    ShowMessage(Format('Event "%s" just happened on backend PID %d.', [Event, TDirPgSqlNotify(ntMain.Handle).Handle.be_pid]));
end;

procedure TfrmMain.trMainAfterConnect(Sender: TObject);
begin
  if trMain.Connected then
  begin
    lbDBConnected.Caption:='Connected';
    lbPID.Caption:=IntToStr(trMain.PID);
  end;
end;

procedure TfrmMain.trMainAfterDisconnect(Sender: TObject);
begin
  if not trMain.Connected then
  begin
    lbDBConnected.Caption:='(Disconnected)';
    lbPID.Caption:='(Disconnected)';
  end;
end;

procedure TfrmMain.btSaveClick(Sender: TObject);
begin
  IniFile.WriteString(strSection, strHost, edHost.Text);
  IniFile.WriteString(strSection, strDatabase, edDatabase.Text);
  IniFile.WriteString(strSection, strLogin, edLogin.Text);
  IniFile.WriteString(strSection, strPassword, edPassword.Text);
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  if FileExists(IniFileName) then
  begin
    edHost.Text:=IniFile.ReadString(strSection, strHost, edHost.Text);
    edDatabase.Text:=IniFile.ReadString(strSection, strDatabase, edDatabase.Text);
    edLogin.Text:=IniFile.ReadString(strSection, strLogin, edLogin.Text);
    edPassword.Text:=IniFile.ReadString(strSection, strPassword, edPassword.Text);
  end;
end;

procedure TfrmMain.btOpenClick(Sender: TObject);
begin
  tbMain.Active:=True;
end;

initialization
  IniFileName:=ChangeFileExt(ParamStr(0), '.ini');
  IniFile:=TIniFile.Create(IniFileName);
finalization
  IniFile.Free;
end.

⌨️ 快捷键说明

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