source upload
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
program Project14ServerExternal;
|
||||
|
||||
{ this sample will create the main SQLite3 DB as in-memory, but will define all
|
||||
tables as external, in the same .db file than Project14Server
|
||||
-> just to demonstrate VirtualTableExternalRegisterAll() function and
|
||||
reproduce the https://synopse.info/forum/viewtopic.php?id=1008 issue }
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
uses
|
||||
{$I SynDprUses.inc} // use FastMM4 on older Delphi, or set FPC threads
|
||||
SysUtils,
|
||||
mORMot,
|
||||
mORMotSQLite3,
|
||||
SynCommons, SynLog,
|
||||
SynDB,
|
||||
SynDBSQLite3, SynSQLite3, SynSQLite3Static,
|
||||
mORMotDB,
|
||||
Project14Interface;
|
||||
|
||||
type
|
||||
TServiceCalculator = class(TInterfacedObject, ICalculator)
|
||||
public
|
||||
function Add(n1,n2: integer): integer;
|
||||
end;
|
||||
|
||||
function TServiceCalculator.Add(n1, n2: integer): integer;
|
||||
begin
|
||||
result := n1+n2;
|
||||
end;
|
||||
|
||||
var
|
||||
aModel: TSQLModel;
|
||||
aProps: TSQLDBSQLite3ConnectionProperties;
|
||||
begin
|
||||
aProps := TSQLDBSQLite3ConnectionProperties.Create(
|
||||
StringToUtf8(ChangeFileExt(ExeVersion.ProgramFileName,'.db')),'','','');
|
||||
try
|
||||
aModel := TSQLModel.Create([TSQLAuthGroup,TSQLAuthUser],ROOT_NAME);
|
||||
VirtualTableExternalRegisterAll(aModel,aProps);
|
||||
try
|
||||
with TSQLRestServerDB.Create(aModel,SQLITE_MEMORY_DATABASE_NAME,true) do
|
||||
try
|
||||
CreateMissingTables; // we need AuthGroup and AuthUser tables
|
||||
ServiceDefine(TServiceCalculator,[ICalculator],sicShared);
|
||||
if ExportServerNamedPipe(APPLICATION_NAME) then
|
||||
writeln('Background server is running.'#10) else
|
||||
writeln('Error launching the server'#10);
|
||||
write('Press [Enter] to close the server.');
|
||||
readln;
|
||||
finally
|
||||
Free;
|
||||
end;
|
||||
finally
|
||||
aModel.Free;
|
||||
end;
|
||||
finally
|
||||
aProps.Free;
|
||||
end;
|
||||
end.
|
Reference in New Issue
Block a user