본문 바로가기

Delphi/꿀팁

[NexusDB] 서버 열고 닫기

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로 확인이 가능합니다.


반응형