📄 pipes.pas
字号:
unit Pipes;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, ToolWin, ComCtrls, Buttons,
OdacVcl, Db, OraAlerter, DBAccess, Ora, OdacDemoFrame, OdacDemoForm;
type
TPipesFrame = class(TOdacDemoFrame)
meOutput: TMemo;
sqSend: TOraSQL;
OraAlerter1: TOraAlerter;
OraSession2: TOraSession;
OraAlerter2: TOraAlerter;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
rbClient: TRadioButton;
rbServer: TRadioButton;
Label1: TLabel;
btStart: TSpeedButton;
btClear: TSpeedButton;
procedure btStartClick(Sender: TObject);
procedure OraAlerter2Event(Sender: TObject; Event, Message: String);
procedure btClearClick(Sender: TObject);
private
{ Private declarations }
public
procedure Initialize; override;
procedure SetDirect(Value: boolean); override;
procedure SetDebug(Value: boolean); override;
end;
implementation
{$IFNDEF VER130}
uses
Variants;
{$ENDIF}
{$IFDEF CLR}
{$R *.nfm}
{$ENDIF}
{$IFDEF WIN32}
{$R *.dfm}
{$ENDIF}
procedure TPipesFrame.SetDirect(Value: boolean);
begin
OraSession2.Options.Direct := Value;
end;
procedure TPipesFrame.btStartClick(Sender: TObject);
begin
OdacForm.OraSession.Connect;
if rbClient.Checked then
with OraAlerter1 do begin
PackMessage('-- Message from client --');
PackMessage('1. String');
PackMessage('It is string');
PackMessage('2. Number');
PackMessage(1234);
PackMessage('3. Date');
PackMessage(Date);
PackMessage('-------------------------');
SendPipeMessage;
SendEvent('evODAC', ' ');
end
else
sqSend.Execute;
if not OraSession2.Connected then begin
AssignConnectionTo(OraSession2);
OraSession2.Connect;
end;
OraAlerter2.Start;
end;
procedure TPipesFrame.OraAlerter2Event(Sender: TObject; Event, Message: String);
var
Item: variant;
begin
meOutput.Lines.Add('Event ' + Event + ' with message: ' + Message);
repeat
Item := OraAlerter2.UnpackMessage;
if not VarIsNull(Item) then
meOutput.Lines.Add('Event ' + Event + ' with message: ' + VarToStr(Item));
until VarIsNull(Item);
end;
procedure TPipesFrame.btClearClick(Sender: TObject);
begin
meOutput.Lines.Clear;
end;
procedure TPipesFrame.Initialize;
begin
inherited;
OraAlerter1.Session := Connection as TOraSession;
OraAlerter2.Session := Connection as TOraSession;
sqSend.Connection := Connection;
end;
procedure TPipesFrame.SetDebug(Value: boolean);
begin
sqSend.Debug := Value;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -