2016-09-02 17:58:47 +00:00
|
|
|
unit mormotdatamodule;
|
|
|
|
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
|
|
|
Classes, SysUtils, FileUtil, Forms, Dialogs, ExtCtrls, VpmORMotDS;
|
|
|
|
|
|
|
|
type
|
|
|
|
|
2016-09-03 15:09:35 +00:00
|
|
|
|
2016-09-02 17:58:47 +00:00
|
|
|
{ TDemoDM }
|
|
|
|
|
|
|
|
TDemoDM = class(TDataModule)
|
|
|
|
Timer1: TTimer;
|
|
|
|
procedure Timer1Timer(Sender: TObject);
|
|
|
|
private
|
2016-09-03 15:09:35 +00:00
|
|
|
FHostIP: String;
|
2016-09-02 20:01:44 +00:00
|
|
|
procedure ReadCmdLine;
|
2016-09-02 17:58:47 +00:00
|
|
|
public
|
|
|
|
Datastore: TVpmORMotDatastore;
|
|
|
|
constructor Create(AOwner: TComponent); override;
|
2016-09-17 17:30:13 +00:00
|
|
|
destructor Destroy; override;
|
2016-09-02 17:58:47 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
DemoDM: TDemoDM;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
{$R *.lfm}
|
|
|
|
|
2016-09-03 15:09:35 +00:00
|
|
|
const
|
|
|
|
// IP address of AWS (amazon web service) tvplanit demoserver
|
|
|
|
AWS_HOST_IP = '54.194.211.233';
|
|
|
|
|
|
|
|
|
2016-09-02 17:58:47 +00:00
|
|
|
constructor TDemoDM.Create(AOwner: TComponent);
|
|
|
|
begin
|
|
|
|
inherited;
|
|
|
|
|
2016-09-02 20:01:44 +00:00
|
|
|
ReadCmdLine;
|
|
|
|
|
2016-09-02 17:58:47 +00:00
|
|
|
Datastore := TVpmORMotDatastore.Create(self);
|
|
|
|
|
|
|
|
with Datastore do
|
|
|
|
begin
|
2016-09-03 15:09:35 +00:00
|
|
|
|
|
|
|
// if the HostIP is set, it will look for a running server on this IP
|
|
|
|
// address when connecting.
|
2016-09-02 17:58:47 +00:00
|
|
|
// leave blank (comment out) for a local (and private) database
|
2016-09-03 15:09:35 +00:00
|
|
|
HostIP := FHostIP;
|
|
|
|
HostPort := '8888';
|
|
|
|
EnableLogging := True;
|
2016-09-02 17:58:47 +00:00
|
|
|
|
|
|
|
Directory := 'data';
|
|
|
|
Connected := true;
|
|
|
|
|
2016-09-02 20:01:44 +00:00
|
|
|
if (Length(HostIP) > 0) and (not Connected) then
|
2016-09-02 17:58:47 +00:00
|
|
|
begin
|
|
|
|
MessageDlg('Cannot connect with server', mtError, [mbOk], 0);
|
|
|
|
Application.Terminate;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
Timer1.Enabled := true;
|
|
|
|
end;
|
|
|
|
|
2016-09-03 15:09:35 +00:00
|
|
|
destructor TDemoDM.Destroy;
|
|
|
|
begin
|
|
|
|
Timer1.Enabled := false;
|
|
|
|
inherited;
|
|
|
|
end;
|
|
|
|
|
|
|
|
{ Use to commandline to switch between different servers.
|
|
|
|
- noserver --> don't use server, for a local (and private) database)
|
|
|
|
- localhost --> use server on local system
|
|
|
|
- (empty) --> use AWS (amazon web service) tvplanit demo server
|
|
|
|
- else --> specify ip address of server }
|
2016-09-02 20:01:44 +00:00
|
|
|
procedure TDemoDM.ReadCmdLine;
|
|
|
|
var
|
|
|
|
s: String;
|
|
|
|
i: Integer;
|
|
|
|
begin
|
2016-09-03 15:09:35 +00:00
|
|
|
FHostIP := AWS_HOST_IP;
|
2016-09-02 20:01:44 +00:00
|
|
|
for i:=1 to ParamCount do begin
|
|
|
|
s := lowercase(ParamStr(i));
|
2016-09-03 15:09:35 +00:00
|
|
|
if s = 'noserver' then
|
|
|
|
FHostIP := ''
|
|
|
|
else
|
|
|
|
FHostIP := s;
|
2016-09-02 20:01:44 +00:00
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
2016-09-02 17:58:47 +00:00
|
|
|
procedure TDemoDM.Timer1Timer(Sender: TObject);
|
|
|
|
begin
|
|
|
|
Timer1.Enabled := False;
|
|
|
|
Datastore.CheckUpdate;
|
|
|
|
Timer1.Enabled := True;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
end.
|
|
|
|
|