📄 proxysession.pas
字号:
unit ProxySession;
interface
uses
{$IFNDEF LINUX}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, ToolWin, ComCtrls, Buttons,
OdacVcl,
{$ELSE}
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs, QStdCtrls,
QDBCtrls, QComCtrls, QExtCtrls, QGrids, QDBGrids, QButtons, OdacClx,
{$ENDIF}
{$IFDEF FPC}
LResources,
{$ENDIF}
DB, {$IFNDEF FPC}MemDS{$ELSE}MemDataSet{$ENDIF},
Ora, DBAccess, OraScript, OdacDemoFrame, OdacDemoForm, DAScript;
type
TProxySessionFrame = class(TOdacDemoFrame)
ToolBar: TPanel;
DBGrid1: TDBGrid;
Panel1: TPanel;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
Panel2: TPanel;
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
OraProxySession: TOraSession;
OraProxyQuery: TOraQuery;
OraClientOneSession: TOraSession;
OraClientTwoSession: TOraSession;
OraClientOneQuery: TOraQuery;
OraClientTwoQuery: TOraQuery;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
DBNavigator1: TDBNavigator;
btConnectProxy: TSpeedButton;
btOpenProxy: TSpeedButton;
btDisconnectProxy: TSpeedButton;
DBNavigator2: TDBNavigator;
btConnectClient1: TSpeedButton;
btOpenClient1: TSpeedButton;
btDisconnectClient1: TSpeedButton;
DBNavigator3: TDBNavigator;
btConnectClient2: TSpeedButton;
btOpenClient2: TSpeedButton;
btDisconnectClient2: TSpeedButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
scCreate: TOraScript;
scDrop: TOraScript;
Panel6: TPanel;
Label5: TLabel;
Panel7: TPanel;
btCreate: TSpeedButton;
btDrop: TSpeedButton;
Bevel1: TBevel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btConnectProxyClick(Sender: TObject);
procedure btDisconnectProxyClick(Sender: TObject);
procedure btOpenProxyClick(Sender: TObject);
procedure btConnectClient1Click(Sender: TObject);
procedure btDisconnectClient1Click(Sender: TObject);
procedure btOpenClient1Click(Sender: TObject);
procedure btConnectClient2Click(Sender: TObject);
procedure btDisconnectClient2Click(Sender: TObject);
procedure btOpenClient2Click(Sender: TObject);
procedure btCreateClick(Sender: TObject);
procedure btDropClick(Sender: TObject);
private
{ Private declarations }
public
procedure Initialize; override;
procedure SetDebug(Value: boolean); override;
procedure SetDirect(Value: boolean); override;
end;
implementation
uses DemoFrame;
{$IFNDEF FPC}
{$IFDEF CLR}
{$R *.nfm}
{$ENDIF}
{$IFDEF WIN32}
{$R *.dfm}
{$ENDIF}
{$IFDEF LINUX}
{$R *.xfm}
{$ENDIF}
{$ENDIF}
procedure TProxySessionFrame.Initialize;
begin
inherited;
scCreate.Connection := Connection;
scDrop.Connection := Connection;
OraClientOneSession.ProxySession := OraProxySession;
OraClientTwoSession.ProxySession := OraProxySession;
end;
procedure TProxySessionFrame.FormClose(Sender: TObject; var Action: TCloseAction);
begin
OraClientOneSession.Disconnect;
OraClientTwoSession.Disconnect;
OraProxySession.Disconnect;
end;
procedure TProxySessionFrame.SetDebug(Value: boolean);
begin
OraProxyQuery.Debug := Value;
OraClientOneQuery.Debug := Value;
OraClientTwoQuery.Debug := Value;
end;
procedure TProxySessionFrame.SetDirect(Value: boolean);
begin
OraClientTwoSession.Options.Direct := Value;
OraClientOneSession.Options.Direct := Value;
OraProxySession.Options.Direct := Value;
end;
procedure TProxySessionFrame.btConnectProxyClick(Sender: TObject);
begin
OraProxySession.Connect;
end;
procedure TProxySessionFrame.btDisconnectProxyClick(Sender: TObject);
begin
if OraClientOneSession.Connected or OraClientTwoSession.Connected then
raise Exception.Create('You should disconnect all proxy clients first');
OraProxySession.Disconnect;
end;
procedure TProxySessionFrame.btOpenProxyClick(Sender: TObject);
begin
OraProxyQuery.Open;
end;
procedure TProxySessionFrame.btConnectClient1Click(Sender: TObject);
begin
OraClientOneSession.Server := OraProxySession.Server;
OraClientOneSession.Connect;
end;
procedure TProxySessionFrame.btDisconnectClient1Click(Sender: TObject);
begin
OraClientOneSession.Disconnect;
end;
procedure TProxySessionFrame.btOpenClient1Click(Sender: TObject);
begin
OraClientOneQuery.Open;
end;
procedure TProxySessionFrame.btConnectClient2Click(Sender: TObject);
begin
OraClientTwoSession.Server := OraProxySession.Server;
OraClientTwoSession.Connect;
end;
procedure TProxySessionFrame.btDisconnectClient2Click(Sender: TObject);
begin
OraClientTwoSession.Disconnect;
end;
procedure TProxySessionFrame.btOpenClient2Click(Sender: TObject);
begin
OraClientTwoQuery.Open;
end;
procedure TProxySessionFrame.btCreateClick(Sender: TObject);
begin
scCreate.Execute;
end;
procedure TProxySessionFrame.btDropClick(Sender: TObject);
begin
scDrop.Execute;
end;
initialization
{$IFDEF FPC}
{$I ProxySession.lrs}
{$ENDIF}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -