Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi sMachine und sService ??? (https://www.delphipraxis.net/109307-smachine-und-sservice.html)

daredd 27. Feb 2008 21:35

Re: sMachine und sService ???
 
Wieso, das macht doch die eigentliche Frage komplett! Jetzt weiss jeder der sich damit nicht auskennt von A bis Z wie man das ausführen muss! :-D

Achim Kalwa 27. Feb 2008 22:19

Re: sMachine und sService ???
 
Hallo,

Zitat:

Zitat von daredd
Jetzt bekomme ich aber wenn ich das hier mache:

Delphi-Quellcode:
procedure TDM.ConnectTuneDatabase;
begin
     while IsServiceInstalled(nil, InterBaseServer) and IsServiceInstalled(nil, InterBaseGuardian)
     do
     if ConnectToDatabase(dbTune, SlashSep(BasePath, 'data\d1.gdb')) then begin
        OpenTuneTables(True);
     end;
     end;
end;
diese Fehlermeldung:

Was wird denn das, wenn es fertig ist?
Klar, die Service-Namen gehören in Hochkommata, das hast Du schon erfahren.
Aber Du versuchst herauszufunden, ob zwei bestimmte lokale Dienste installiert sind: InterBaseServer und InterBaseGuardian. Warum?!

Dazu folgende Anmerkungen:
  • Die Dienste können zwar installiert, aber nicht gestartet sein. Das prüfst Du aber bislang nicht.
  • Der InterBaseServer funkioniert auch prima, wenn der InterBaseGuardian NICHT installiert ist.
  • Der InterBaseServer muss nicht notwendigerweise als Dienst laufen, man kann ihn auch als normale Anwendung (mit Tray-Icon) starten.
  • Falls statt Interbase die OpenSource-Variante Firebird zum Einsatz kommt, müsstest Du auf ganz andere Service-Namen prüfen.
  • Bei lokalen Datenbanken (Single-User) und Firebird kommt man auch ganz ohne Dienst aus; eine kleine DLL im Verzeichnis Deiner Anwendung beinhaltet den sog. Embedded Server -- ganz ohne Installation.
  • Die Datenbank kann sich ja auch auf einem Server im Netzwerk befinden; wenn Du den Servername nicht kennst oder keine Rechte für die Remote-Abfrage hast, schlägt obiger Code sowieso fehl.
Zusammenfassung:
Nur unter ganz eng definierten Bedingungen ist es sinnvoll zu prüfen, ob der Interbase-Dienst installiert und gestartet ist. In allen anderen Fällen ist es unkomplizierter, einfach einen Versuch zu starten und die Datenbank zu öffnen. Im Fehlerfall kannst Du aus der Fehlermeldung ablesen, was schief gegangen ist :-)

Achim


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

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