Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird - Server: beenden? (https://www.delphipraxis.net/140814-firebird-server-beenden.html)

omata 26. Sep 2009 15:35

Datenbank: Firebird • Version: 2.1 • Zugriff über: DBExpress

Firebird - Server: beenden?
 
Ich starte den Firebird-Server folgendermaßen...
Delphi-Quellcode:
function ExecAndWait(const Filename, Params: string;
                     WindowState: word): TProcessInformation;
var SUInfo: TStartUpInfo;
    CmdLine: string;
    lpExitCode:dword;
begin
  CmdLine:='"'+Filename+'" '+Params;

  FillChar(SUInfo,SizeOf(SUInfo),#0);
  with SuInfo do begin
    cb:=SizeOf(SUInfo);
    dwFlags:=STARTF_USESHOWWINDOW;
    wShowWindow:=WindowState;
  end;

  CreateProcess(
    nil, PChar(CmdLine), nil, nil, FALSE,
    CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
    PChar(ExtractFilePath(FileName)), SUInfo, Result
  );
end;

procedure TForm.ButtonClick(Sender: TObject);
begin
  ProcessInformation:=ExecAndWait(
    ExtractFilePath(ParamStr(0)) + 'bin\fbserver.exe',
    '-a -n -p 3000',
    SW_NORMAL
  );
end;
Also konkret: fbserver.exe -a -n -p 3000

Ist es möglich den Server auch wieder zu beenden? Ich meine nicht das Beenden über das TrayIcon!

Hoffe Ihr habe da eine Idee zu...

omata 26. Sep 2009 15:45

Re: Firebird - Server: beenden?
 
So habe die Lösung selber gefunden...

Delphi-Quellcode:
TerminateProcess(ProcessInformation.hProcess, 0);
TerminateThread(ProcessInformation.hThread, 0);
Hatte mich vertippt, deshalb klappte das vorhin bei mir nicht.

Wer eine bessere Möglichkeit kennt, bitte melden.

mkinzler 26. Sep 2009 16:52

Re: Firebird - Server: beenden?
 
Läuft der Server als Dienst?

omata 26. Sep 2009 17:03

Re: Firebird - Server: beenden?
 
Nein...
Code:
-a = run as application

tsteinmaurer 28. Sep 2009 13:24

Re: Firebird - Server: beenden?
 
Hallo,

warum willst du den Server überhaupt beenden? Kannst du sicherstellen, dass sonst niemand außer dir den Firebird Server in Verwendung hat?


lg,
Thomas
http://www.upscene.com

omata 28. Sep 2009 18:34

Re: Firebird - Server: beenden?
 
Die Idee kommt von hier.

Es geht darum, eine Firebird-DB für seine Anwendung zu haben, die nicht installiert werden muss, aber trotzdem einen Multi-User-Betrieb ermöglicht. Ich kann also nicht wirklich sicherstellen, dass da kein anderer Benutzer drauf ist. Allerdings soll da auch kein anderer Benutzer als die meiner Anwendung drauf sein. Die Idee ist eben in einer Anwendung mehrfachen Parallelbetrieb (über bzw. für Threads) zu ermöglichen.

Hoffe damit ist die Idee dahinter klarer geworden...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz