source upload
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
/// MVC sample web application, publishing a simple BLOG and PostgreSQL as DB
|
||||
program MVCServerFirebird;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
|
||||
// please select one of the two! :)
|
||||
{$define USEZEOSFIREBIRD}
|
||||
{.$define USEFIREDACFIREBIRD}
|
||||
|
||||
uses
|
||||
{$I SynDprUses.inc} // will enable FastMM4 prior to Delphi 2006
|
||||
SynCrtSock,
|
||||
SynCommons,
|
||||
SynTable,
|
||||
SynLog,
|
||||
mORMot,
|
||||
SynSQLite3,
|
||||
SynSQLite3Static,
|
||||
mORMotSQLite3,
|
||||
mORMotHttpServer,
|
||||
mORMotMVC,
|
||||
SynDB,
|
||||
mORMotDB,
|
||||
{$ifdef USEZEOSFIREBIRD}
|
||||
SynDBZeos,
|
||||
{$endif}
|
||||
{$ifdef USEFIREDACFIREBIRD}
|
||||
SynDBFireDAC,
|
||||
{$ifdef ISDELPHIXE5} FireDAC.Phys.IB, {$else} uADPhysIB, {$endif}
|
||||
{$endif}
|
||||
MVCModel,
|
||||
MVCViewModel,
|
||||
SysUtils;
|
||||
|
||||
var aModel: TSQLModel;
|
||||
{$ifdef USEFIREDACFIREBIRD}
|
||||
aURI: RawUTF8;
|
||||
aDriver: TADPhysIBDriverLink;
|
||||
{$endif}
|
||||
aExternalDB: TSQLDBConnectionPropertiesThreadSafe;
|
||||
aServer: TSQLRestServerDB;
|
||||
aApplication: TBlogApplication;
|
||||
aHTTPServer: TSQLHttpServer;
|
||||
begin
|
||||
with TSQLLog.Family do
|
||||
Level := LOG_VERBOSE;
|
||||
aModel := CreateModel;
|
||||
try
|
||||
{$ifdef USEZEOSFIREBIRD}
|
||||
aExternalDB := TSQLDBZEOSConnectionProperties.Create(
|
||||
TSQLDBZEOSConnectionProperties.URI(dFIREBIRD,'',
|
||||
'..\15 - External DB performance\Firebird\fbembed.dll'),
|
||||
'MVCServerFirebird.fdb','sysdba','masterkey');
|
||||
aExternalDB.ThreadingMode := tmMainConnection; // as expected for FB embedded
|
||||
{$endif}
|
||||
{$ifdef USEFIREDACFIREBIRD}
|
||||
aDriver := TADPhysIBDriverLink.Create(nil);
|
||||
aDriver.VendorLib := '..\15 - External DB performance\Firebird\fbembed.dll';
|
||||
aURI := FIREDAC_PROVIDER[dFirebird];
|
||||
if not FileExists('MVCServerFirebird.fdb') then
|
||||
aURI := aURI+'?CreateDatabase=Yes';
|
||||
aExternalDB := TSQLDBFireDACConnectionProperties.Create(
|
||||
aURI,'MVCServerFirebird.fdb','sysdba','masterkey');
|
||||
{$endif}
|
||||
try
|
||||
VirtualTableExternalRegisterAll(aModel,aExternalDB,[regMapAutoKeywordFields]);
|
||||
aServer := TSQLRestServerDB.Create(aModel,SQLITE_MEMORY_DATABASE_NAME);
|
||||
try
|
||||
aServer.AcquireExecutionMode[execORMGet] := amBackgroundThread;
|
||||
aServer.AcquireExecutionMode[execORMWrite] := amBackgroundThread;
|
||||
aServer.CreateMissingTables;
|
||||
aApplication := TBlogApplication.Create;
|
||||
try
|
||||
aApplication.Start(aServer);
|
||||
aHTTPServer := TSQLHttpServer.Create('8092',aServer,'+',useHttpApiRegisteringURI);
|
||||
try
|
||||
aHTTPServer.RootRedirectToURI('blog/default'); // redirect localhost:8092
|
||||
writeln('"MVC Blog Server" launched on port 8092 using ',aHttpServer.HttpServer.ClassName);
|
||||
writeln(#10'You can check http://localhost:8092/blog/mvc-info for information');
|
||||
writeln('or point to http://localhost:8092 to access the web app.');
|
||||
writeln(#10'Press [Enter] to close the server.'#10);
|
||||
readln;
|
||||
finally
|
||||
aHTTPServer.Free;
|
||||
end;
|
||||
finally
|
||||
aApplication.Free;
|
||||
end;
|
||||
finally
|
||||
aServer.Free;
|
||||
end;
|
||||
finally
|
||||
aExternalDB.Free;
|
||||
end;
|
||||
finally
|
||||
aModel.Free;
|
||||
end;
|
||||
{$ifdef USEFIREDACFIREBIRD}
|
||||
aDriver.Free;
|
||||
{$endif}
|
||||
end.
|
Reference in New Issue
Block a user