NexusDB 서버를 열기위한 컴포넌트를 준비합니다.
각 컴포넌트의 Object Inspector에서 Properties를 설정해줍니다.
nxServerCommandHandler1.ServerEngine := nxServerEngine1;
nxWinsockTransport1.CommandHandler := nxServerCommandHandler1;
nxWinsockTransport1.Mode := nxtmListen;
nxDatabase1.Session := nxSession1;
nxSession1.ServerEngine := nxServerEngine1;
nxServerEngine1.SqlEngine := nxSqlEngine1;
//트리거 컴포넌트는 해당 기능이 필요할 때 생성
nxSqlTriggerMonitor1.ServerEngine := nxServerEngine1;
nxSqlTriggerMonitor1.SqlEngine := nxSqlEngine1;
서버를 시작하는 함수.
function TDataModule1.fRunServer: Boolean;
var
sFolderPath : string;
begin
sFolderPath := ExtractFilePath(ParamStr(0)) + 'Data'; //NexusDB Table 및 각종 데이터가 있는 폴더
ForceDirectories(sFolderPath);
try
nxSession1.Close;
nxDatabase1.Close;
nxWinsockTransport1.Close;
nxServerCommandHandler1.Close;
nxSqlEngine1.Close;
nxServerEngine1.Close;
nxServerEngine1.ServerName := 'TestServer';
nxServerEngine1.Open;
nxServerCommandHandler1.Open;
nxSqlEngine1.Open;
nxServerEngine1.AliasHandler.Add('TestData', Trim( sFolderPath ), False);
nxSession1.Open;
nxDatabase1.AliasName := 'TestData'; //ServerEngine에 등록한 Alias와 동일해야 됩니다.
nxDatabase1.Open;
nxWinsockTransport1.Port := 16010; //서버를 열 포트 번호(기본은 16000)
nxWinsockTransport1.Open;
Result := True;
except
Result := False;
end;
end;
서버를 종료하는 함수.
function TDataModule1.fStopServer: Boolean;
begin
try
//순차적으로 종료합니다.
nxSession1.Close;
nxDatabase1.Close;
nxWinsockTransport1.Close;
nxServerCommandHandler1.Close;
nxSqlEngine1.Close;
nxServerEngine1.Close;
Result := True;
except
Result := False;
end;
end;
서버를 열었을 때, NexusDB Manager로 확인이 가능합니다.