Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   MySQL Dienst prüfen (https://www.delphipraxis.net/183677-mysql-dienst-pruefen.html)

strom 28. Jan 2015 08:02

MySQL Dienst prüfen
 
Hallo,
möchte prüfen ob der Server "MySQL" also der Dienst läuft.
Hier passiert leider nichts?

Delphi-Quellcode:
function ServiceGetStatus(sMachine, sService: PChar): DWORD;
   {******************************************}
   {*** Parameters: ***}
   {*** sService: specifies the name of the service to open
   {*** sMachine: specifies the name of the target computer
   {*** ***}
   {*** Return Values: ***}
   {*** -1 = Error opening service ***}
   {*** 1 = SERVICE_STOPPED ***}
   {*** 2 = SERVICE_START_PENDING ***}
   {*** 3 = SERVICE_STOP_PENDING ***}
   {*** 4 = SERVICE_RUNNING ***}
   {*** 5 = SERVICE_CONTINUE_PENDING ***}
   {*** 6 = SERVICE_PAUSE_PENDING ***}
   {*** 7 = SERVICE_PAUSED ***}
   {******************************************}
var
   SCManHandle, SvcHandle: SC_Handle;
   SS: TServiceStatus;
   dwStat: DWORD;
begin
   dwStat := 0;
   // Open service manager handle.
   SCManHandle := OpenSCManager(sMachine, nil, SC_MANAGER_CONNECT);
   if (SCManHandle > 0) then
   begin
     SvcHandle := OpenService(SCManHandle, 'MySQL', SERVICE_QUERY_STATUS);
     // if Service installed
     if (SvcHandle > 0) then
     begin
      ShowMessage('TEST'); // Zum testen
       // SS structure holds the service status (TServiceStatus);
       if (QueryServiceStatus(SvcHandle, SS)) then
         dwStat := ss.dwCurrentState;
       CloseServiceHandle(SvcHandle);
     end;
     CloseServiceHandle(SCManHandle);
   end;
   Result := dwStat;
end;

function ServiceRunning(sMachine, sService: PChar): Boolean;
begin
   Result := SERVICE_RUNNING = ServiceGetStatus(sMachine, 'MySQL');
end;

baumina 28. Jan 2015 08:20

AW: MySQL Dienst prüfen
 
Meist läuft doch so ein mySQL-Dienst sowieso auf einem Server und nicht auf der Arbeitsstation. Dann wäre es sinnvoller einfach zu schauen ob die Connection klappt.

BadenPower 28. Jan 2015 08:31

AW: MySQL Dienst prüfen
 
Bist Du sicher, dass der Dienst "MySql" heisst?

Bei mir läuft einer der MySql-Dienste zum Beispiel unter "MySQL501".

DeddyH 28. Jan 2015 08:44

AW: MySQL Dienst prüfen
 
Beim Debuggen würde man merken, welche Bedingung nicht erfüllt wird, und könnte den Fehler mit GetLastError gezielt abfragen.

Sir Rufo 28. Jan 2015 08:52

AW: MySQL Dienst prüfen
 
Zitat:

Zitat von BadenPower (Beitrag 1288020)
Bist Du sicher, dass der Dienst "MySql" heisst?

Bei mir läuft einer der MySql-Dienste zum Beispiel unter "MySQL501".

Bei mir läuft sogar einer unter dem Namen "ErwinFroehlich" und "PeterLustig" habe ich auch schon gesehen :roll:

Der Servicename ist nicht in Stein gemeißelt sondern wird bei der Installation (des Dienstes) vom Benutzer/Installateur ;) festgelegt, sonst könnte auf einem Rechner auch nur eine MySQL-Server-Instanz laufen!

BadenPower 28. Jan 2015 10:50

AW: MySQL Dienst prüfen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1288026)
Bei mir läuft sogar einer unter dem Namen "ErwinFroehlich" und "PeterLustig" habe ich auch schon gesehen :roll:

Ach Gott bin ich altmodisch.

Ich benenne die die Dienste nach Versionsnummer und wenn zwei der gleiche Versionen laufen dann mit zusätzlichen Instanz-Index.

MySQL323
MySQL40
MySQL501
MySQL55_1
MySQL55_2
MySQL56

Aber so einen Dienst zu personalisieren geht mir dann doch etwas zu weit.
Es klingt dann etwas makaber wenn Du sagst "PeterLustig" hat sich aufgehängt.

strom 28. Jan 2015 11:30

AW: MySQL Dienst prüfen
 
Hallo,
oder einen ganz anderen Weg!

Wenn ich das Programm fertig habe, möchte ich ein Setup erstellen.

Als erstes soll:

MySQL Server 5.1 installiert werden,
dann soll die Tabelle erstellt werden,
dann erst das Setup von meinem Programm.

Kann ich dieses alle mit Setup Inno machen?
Oder was gibt es da noch?

Der schöne Günther 28. Jan 2015 11:35

AW: MySQL Dienst prüfen
 
Zitat:

Zitat von BadenPower (Beitrag 1288048)
Es klingt dann etwas makaber wenn Du sagst "PeterLustig" hat sich aufgehängt.

Deswegen sagt das System ja auch "Peter Lustig reagiert nicht" und nicht so etwas Schlimmes!

mkinzler 28. Jan 2015 11:49

AW: MySQL Dienst prüfen
 
Früher hiessen viele Rechner Elvis, weil man "elvis is alive" als witzig empfand.

Sir Rufo 28. Jan 2015 13:59

AW: MySQL Dienst prüfen
 
Ich wollte eher darauf hinaus, dass die Abfrage auf den Dienst mit dem Namen "MySQL" nicht falsch sein muss - allerdings auch nicht richtig. Eher muss man nach dem richtigen Dienstnamen fragen und der kann sein wie will.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.
Seite 1 von 2  1 2      

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