📄 main.pas
字号:
unit Main;
interface
uses
{$IFDEF LINUX}
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs, QStdCtrls,
QDBCtrls, QComCtrls, QExtCtrls, QGrids, QDBGrids, OdacClx,
{$ELSE}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, ToolWin, ComCtrls, OdacVcl,
{$ENDIF}
Db, OraAlerter, DBAccess, Ora;
type
TfmMain = class(TForm)
btStart: TButton;
meOutput: TMemo;
OraSession1: TOraSession;
sqSend: TOraSQL;
OraAlerter1: TOraAlerter;
OraSession2: TOraSession;
OraAlerter2: TOraAlerter;
rbSource: TRadioGroup;
btClear: TButton;
procedure btStartClick(Sender: TObject);
procedure OraAlerter2Event(Sender: TObject; Event, Message: String);
procedure btClearClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
{$IFNDEF VER130}
uses
Variants;
{$ENDIF}
{$R *.nfm}
procedure TfmMain.btStartClick(Sender: TObject);
begin
OraSession1.Connect;
if rbSource.ItemIndex = 0 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;
OraSession2.Assign(OraSession1);
OraSession2.Connect;
OraAlerter2.Start;
end;
procedure TfmMain.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 TfmMain.btClearClick(Sender: TObject);
begin
meOutput.Lines.Clear;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -