📄 smartrefresh.pas
字号:
unit SmartRefresh;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, ComCtrls, Buttons, OdacVcl,
Db, DASQLMonitor, OraSQLMonitor, DBAccess, Ora, MemDS, OraSmart,
OdacDemoFrame, OdacDemoForm;
type
TSmartRefreshFrame = class(TOdacDemoFrame)
Query1: TSmartQuery;
DataSource1: TDataSource;
Panel1: TPanel;
DBGrid1: TDBGrid;
Splitter1: TSplitter;
ToolBar1: TPanel;
ToolBar: TPanel;
Panel2: TPanel;
DBGrid2: TDBGrid;
ToolBar2: TPanel;
DataSource2: TDataSource;
OraSession2: TOraSession;
Query2: TSmartQuery;
Label1: TLabel;
Label2: TLabel;
OraSQLMonitor1: TOraSQLMonitor;
Panel3: TPanel;
btOpen: TSpeedButton;
btClose: TSpeedButton;
btCommit: TSpeedButton;
Panel5: TPanel;
Label3: TLabel;
edInterval: TEdit;
cbAutoCommit: TCheckBox;
cbUseSameEvent: TCheckBox;
Panel4: TPanel;
Panel6: TPanel;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
procedure btOpenClick(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure Query1AfterSmartRefresh(DataSet: TDataSet);
procedure Query2AfterSmartRefresh(DataSet: TDataSet);
procedure btCommitClick(Sender: TObject);
procedure cbAutoCommitClick(Sender: TObject);
procedure edIntervalExit(Sender: TObject);
procedure cbUseSameEventClick(Sender: TObject);
procedure OraSession2BeforeConnect(Sender: TObject);
private
{ Private declarations }
public
procedure Initialize; override;
procedure SetDebug(Value: boolean); override;
procedure SetDirect(Value: boolean); override;
end;
implementation
{$IFDEF CLR}
{$R *.nfm}
{$ENDIF}
{$IFDEF WIN32}
{$R *.dfm}
{$ENDIF}
procedure TSmartRefreshFrame.btOpenClick(Sender: TObject);
begin
Query1.Open;
if not OraSession2.Connected then begin
AssignConnectionTo(OraSession2);
OraSession2.Connect;
end;
Query2.Open;
end;
procedure TSmartRefreshFrame.btCloseClick(Sender: TObject);
begin
Query1.Close;
Query2.Close;
end;
procedure TSmartRefreshFrame.Query1AfterSmartRefresh(DataSet: TDataSet);
begin
MessageBeep(1);
end;
procedure TSmartRefreshFrame.Query2AfterSmartRefresh(DataSet: TDataSet);
begin
MessageBeep(1);
end;
procedure TSmartRefreshFrame.btCommitClick(Sender: TObject);
begin
OdacForm.OraSession.Commit;
OraSession2.Commit;
end;
procedure TSmartRefreshFrame.Initialize;
begin
inherited;
Query1.Connection := Connection;
cbAutoCommit.Checked := Query1.AutoCommit;
edInterval.Text := IntToStr(OraSmart.RefreshInterval);
cbUseSameEvent.Checked := True;
end;
procedure TSmartRefreshFrame.cbAutoCommitClick(Sender: TObject);
begin
Query1.AutoCommit := cbAutoCommit.Checked;
Query2.AutoCommit := cbAutoCommit.Checked;
end;
procedure TSmartRefreshFrame.SetDebug(Value: boolean);
begin
Query1.Debug := Value;
Query2.Debug := Value;
end;
procedure TSmartRefreshFrame.SetDirect(Value: boolean);
begin
OraSession2.Options.Direct := Value;
end;
procedure TSmartRefreshFrame.edIntervalExit(Sender: TObject);
begin
OraSmart.RefreshInterval := StrToInt(edInterval.Text);
end;
procedure TSmartRefreshFrame.cbUseSameEventClick(Sender: TObject);
begin
if cbUseSameEvent.Checked then begin
Query1.RefreshEvent := 'ODAC';
Query1.DependEvents := 'ODAC';
Query2.RefreshEvent := 'ODAC';
Query2.DependEvents := 'ODAC';
end
else begin
Query1.RefreshEvent := Query1.Name;
Query1.DependEvents := Query1.Name;
Query2.RefreshEvent := Query2.Name;
Query2.DependEvents := Query2.Name;
end;
end;
procedure TSmartRefreshFrame.OraSession2BeforeConnect(Sender: TObject);
begin
inherited;
OraSession2.Options.Direct := OdacForm.OraSession.Options.Direct;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -