source upload
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
/// this server will use TSQLRestServerDB over HTTP
|
||||
program Project21HttpServer;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
// first line of uses clause must be {$I SynDprUses.inc}
|
||||
uses
|
||||
{$I SynDprUses.inc}
|
||||
SysUtils,
|
||||
Classes,
|
||||
SynCommons,
|
||||
SynTable,
|
||||
SynLog,
|
||||
mORMot,
|
||||
mORMotSQlite3,
|
||||
SynSQLite3,
|
||||
SynSQLite3Static,
|
||||
mORMotHttpServer;
|
||||
|
||||
type
|
||||
TSQLRecordPeople = class(TSQLRecord)
|
||||
private
|
||||
fFirstName: RawUTF8;
|
||||
fLastName: RawUTF8;
|
||||
fYearOfBirth: integer;
|
||||
fYearOfDeath: word;
|
||||
published
|
||||
property FirstName: RawUTF8 read fFirstName write fFirstName;
|
||||
property LastName: RawUTF8 read fLastName write fLastName;
|
||||
property YearOfBirth: integer read fYearOfBirth write fYearOfBirth;
|
||||
property YearOfDeath: word read fYearOfDeath write fYearOfDeath;
|
||||
end;
|
||||
|
||||
var
|
||||
aDatabaseFile: TFileName;
|
||||
aModel: TSQLModel;
|
||||
aServer: TSQLRestServerDB;
|
||||
aHTTPServer: TSQLHttpServer;
|
||||
begin
|
||||
// define the log level
|
||||
with TSQLLog.Family do begin
|
||||
Level := LOG_STACKTRACE;
|
||||
EchoToConsole := LOG_VERBOSE; // events to the console
|
||||
PerThreadLog := ptIdentifiedInOnFile;
|
||||
end;
|
||||
// create a Data Model
|
||||
aModel := TSQLModel.Create([TSQLRecordPeople]);
|
||||
try
|
||||
aDatabaseFile := ChangeFileExt(ExeVersion.ProgramFileName,'.db3');
|
||||
DeleteFile(aDatabaseFile);
|
||||
aServer := TSQLRestServerDB.Create(aModel,aDatabaseFile);
|
||||
try
|
||||
aServer.AcquireWriteTimeOut := 15000; // 15 seconds before write failure
|
||||
aServer.DB.Synchronous := smOff;
|
||||
aServer.DB.LockingMode := lmExclusive; // off+exclusive = fastest SQLite3
|
||||
aServer.NoAJAXJSON := true;
|
||||
aServer.CreateMissingTables;
|
||||
// launch the server
|
||||
aHTTPServer := TSQLHttpServer.Create('888',[aServer]);
|
||||
try
|
||||
writeln(#13#10'Background server is running at http://localhost:888'#13#10+
|
||||
#13#10'Press [Enter] to close the server.');
|
||||
ConsoleWaitForEnterKey;
|
||||
with TSQLLog.Family do
|
||||
if not (sllInfo in Level) then // let global server stats be logged
|
||||
Level := Level+[sllInfo];
|
||||
finally
|
||||
aHTTPServer.Free;
|
||||
end;
|
||||
finally
|
||||
aServer.Free;
|
||||
end;
|
||||
finally
|
||||
aModel.Free;
|
||||
end;
|
||||
end.
|
Reference in New Issue
Block a user