Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datei prüfen auf einen Ubuntu Server prüfen (https://www.delphipraxis.net/210365-datei-pruefen-auf-einen-ubuntu-server-pruefen.html)

Chemiker 13. Apr 2022 10:23

Delphi-Version: 11 Alexandria

Datei prüfen auf einen Ubuntu Server prüfen
 
Hallo zusammen,

um festzustellen, ob eine Datei schon vorhanden ist, kann man das mit FileExists überprüfen.

Delphi-Quellcode:
if not FileExists (Path+Dateiname) then
   {lege die Datei an...
Gibt es die Möglichkeit von Delphi aus, eine Datei auf einen Ubuntu - Server zu überprüfen wenn diese schon vorhanden ist.
Es geht darum, auf einen Ubuntu - Server eine Firebird Datenbank anzulegen, wenn diese noch nicht vorhanden ist.

Bis bald Chemiker

Maliko 13. Apr 2022 10:31

AW: Datei prüfen auf einen Ubuntu Server prüfen
 
Liegt das Delphi-Programm auf dem Ubuntu-Server oder soll da via Remote geprüft werden?

Chemiker 13. Apr 2022 10:41

AW: Datei prüfen auf einen Ubuntu Server prüfen
 
Nein, ich lege mit einem Delphi - Programm eine neue DB auf einen Firebird - Server an, wenn diese noch nicht vorhanden ist.

Delphi-Quellcode:
begin
  if not FileExists(aServerName+':'+aDatenBankOrdner+aDatenbankName) then
  begin
    DB:= TIBCConnection.Create(NIL);
    try
      try
       DB.database := aDatenbankOrdner + aDatenbankName;
       DB.Server := aServerName;
Wenn die DB allerdings schon vorhanden ist würde ich das gerne vorher abfangen.

Bis bald Chemiker

DeddyH 13. Apr 2022 10:46

AW: Datei prüfen auf einen Ubuntu Server prüfen
 
Sofern der Firebird-Server auf dem Ubuntu-Server läuft, wäre es da nicht eleganter, dessen Metadaten abzufragen anstatt im Dateisystem zu suchen?

Frickler 13. Apr 2022 11:55

AW: Datei prüfen auf einen Ubuntu Server prüfen
 
Zitat:

Zitat von DeddyH (Beitrag 1504548)
Sofern der Firebird-Server auf dem Ubuntu-Server läuft, wäre es da nicht eleganter, dessen Metadaten abzufragen anstatt im Dateisystem zu suchen?

Das dürfte bei Firebird nicht gehen. Die Metadaten sind dort nur pro Datenbank abrufbar, nicht pro Server. Die einzigen datenbankunabhängigen Daten sind die User, und das auch nur bis Firebird 2.5. Ab 3.0 kann es mehrere Userdatenbanken geben. Man kann nur versuchen, die Datenbank zu öffnen. Schlägt das fehl, gibts die nicht.

Klaus01 13. Apr 2022 12:38

AW: Datei prüfen auf einen Ubuntu Server prüfen
 
.. wenn die db nicht in einem shared Verzeichnis liegt, dürft es schwierig sein dies von einem Windows_Rechner( Dein Programm) auf einem Ubuntu-Rechner (firebird) abzufragen.
Alternativ ginge noch die per ssh auf den Ubuntu-Rechner zu verbinden und dann über diese shell schauen ob die Datenbank auf dem Server schon vorhanden ist.

Grüße
Klaus

peterbelow 13. Apr 2022 12:39

AW: Datei prüfen auf einen Ubuntu Server prüfen
 
Zitat:

Zitat von Chemiker (Beitrag 1504543)
Hallo zusammen,

um festzustellen, ob eine Datei schon vorhanden ist, kann man das mit FileExists überprüfen.

Delphi-Quellcode:
if not FileExists (Path+Dateiname) then
   {lege die Datei an...
Gibt es die Möglichkeit von Delphi aus, eine Datei auf einen Ubuntu - Server zu überprüfen wenn diese schon vorhanden ist.
Es geht darum, auf einen Ubuntu - Server eine Firebird Datenbank anzulegen, wenn diese noch nicht vorhanden ist.

Bis bald Chemiker

Ist das Filesystem des Servers über das Netz von dem Rechner aus, auf dem das Delphi-Programm läuft, sichtbar, z. B. im Windows Explorer? Wenn nicht, kannst Du dich per WNetAddConnection2 an dem Server anmelden, um Zugriff auf das Dateisystem zu bekommen? Dazu muss der Server natürlich eine entsprechende Freigabe erteilt haben.

jfheins 13. Apr 2022 13:03

AW: Datei prüfen auf einen Ubuntu Server prüfen
 
Zitat:

Zitat von Chemiker (Beitrag 1504547)
Wenn die DB allerdings schon vorhanden ist würde ich das gerne vorher abfangen.

Bis bald Chemiker

Das macht ehrlicherweise wenig Sinn. Weil das Ergebnis (DB nicht vorhanden) könnte im nächsten Moment ja schon wieder obsolet sein. (Stell dir vor, jemand startet 2 Instanzen von einem Programm simultan indem er doppelt Enter drückt...)

Kannst du nicht einfach die DB anlegen und die Exception abfangen, falls die Datei schon existiert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 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