Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ändern der Alias Adresse einer DB (https://www.delphipraxis.net/138181-aendern-der-alias-adresse-einer-db.html)

Jens Hartmann 4. Aug 2009 22:03

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

Ändern der Alias Adresse einer DB
 
Hallo zusammen,

mal wieder ein wahrscheinlich simple aber für mich zur Zeit nicht ganz klare frage.

Bei der Firebird DB arbeitet man ja mit Alias Adressen, die in der aliases.conf unter...
Code:
C:\Programme\Firebird\Firebird_2_1\aliases.conf'
Standartmäßig abgespeichert sind.

Wenn ich jetzt dem Kunden über z.B. folgenden Code (Öffnen eines OpenDialog und Standort wählen)

Delphi-Quellcode:
procedure TForm1.USERDB1Click(Sender: TObject);
var
  Speicherort : String;
  f : TextFile;
begin
if DatenbankUserOpenDialog.Execute then
  begin
    Speicherort := DatenbankUserOpenDialog.FileName;
  end;

  if DM_PS.SpeicherOrtDBUser(Speicherort) = true then
    begin
      AssignFile(f,'C:\Programme\Firebird\Firebird_2_1\aliases.conf');
      {$i-} Append(f); {$i+}
        if IOResult <> 0 then
          begin
          ShowMessage('Fehler beim schreiben der Alias');
          Exit;
          end;
        Writeln(f,'PSUser = '+Speicherort);
        CloseFile(f);
      MessageDlg('Datenbankverbindung erfolgreich geändert!',mtInformation,[mbOK],0);
    end
  else
    begin
      MessageDlg('Datenbankverbindung nicht geändert!',mtInformation,[mbOK],0);
    end;
end;
die Möglichkeit geben will, den Alias zu ändern, kommen wir mal wieder zu dem Thema Speicherorte. Ich kann ohne Adminrechte auf
C:\Programme ja nicht schreiben. Wie muss man sowas machen.

Also, schon mal danke bis dann.

Gruß Jens

mkinzler 4. Aug 2009 22:06

Re: Ändern der Alias Adresse einer DB
 
Die Frage ist, ob es sinnvoll ist, das ein normaler Benutzer diese Datei direkt bearbeiten können. U.U wäre es sinnvoller ein Programm dafür anzubieten, welches sich die Rechte besorgt (elevation)

Jens Hartmann 4. Aug 2009 22:17

Re: Ändern der Alias Adresse einer DB
 
Ja, das weiß ich momentan auch noch nicht so richtig.
Im normalen Fall, werden diese Rechner mit Adminrechten versehen sein. Frage wäre, ob es Sinn machen könnte, z.B. die Menüpunkte im Menü auf Enabled = false zu setzen, wenn eine USER (WINDOWS) angemeldet ist, der keine Adminrechte hat. Das kann man doch bestimmt irgendwie beim Programmstart abfragen lassen.

Grundsätzlich möchte ich halt diese Möglichkeit zur Verfügung stellen. Die Frage ist halt, wie es Sinn macht. Sollte ein Kunde anrufen, und die bitte haben, die DB an einem anderen Ort zu hinterlegen, würde ich Ihm halt gerne auf einfache weise, aber ohne etwas zu beschädigen dieses ermöglichen.

Den Speicherort der DB ändere ich im Datenmodul, über folgende Funktion...

Delphi-Quellcode:
{Speicherorte der Datenbanken ändern}
function TDM_PS.SpeicherOrtDBConfig(var DBOrt: String): Boolean;
begin
  if ConPSUser.Connected = true then
    begin
    ConPSConfig.Disconnect;
    ConPSConfig.Database := DBOrt;
      try
        ConPSConfig.Connect;
        SpeicherOrtDBConfig := true;
      except
        SpeicherOrtDBConfig := false;
      end;
    end
  else
    begin
    ConPSConfig.Database := DBOrt;
      try
        ConPSConfig.Connect;
        SpeicherOrtDBConfig := true;
      except
        SpeicherOrtDBConfig := false;
      end;
    end;
end;
Somit, kann er währende dem laufenden Programm die DB ändern und alles funktioniert. Ich muss halt jetzt nur hinbekommen, das auch nach einem Neustart, natürlich auf den neuen Standort zugegriifen wird.

Gruß Jens

Jens Hartmann 5. Aug 2009 21:26

Re: Ändern der Alias Adresse einer DB
 
Hab das ganze nochmal überdacht. Ich werde die Funktion so belassen und diese Funktion nur Administratoren erstmal zur Verfügung stellen.

Aber wie sieht es denn aus, wenn ich den Standort der Datenbank, nicht in die aliases.conf, sondern in die Registry schreibe. Ist das OK, oder macht man sich über so eine Funktion gar keine Gedanken.

Was bedeutet das oben mit dem externen Programm...

Zitat:

Zitat von mkinzler
U.U wäre es sinnvoller ein Programm dafür anzubieten, welches sich die Rechte besorgt (elevation)

Gruß Jens

mkinzler 5. Aug 2009 21:30

Re: Ändern der Alias Adresse einer DB
 
Ich dachte da, z.B. an einen zusätzlichen Dienst auf den Server, mit Hilfe man die Aliase verwalten kann

Jens Hartmann 5. Aug 2009 21:36

Re: Ändern der Alias Adresse einer DB
 
Das ist mir jetzt ein bißchen unklar. Da fehlen mir jetzt die Erfahrungen. Ich vermute, Du meinst ein Programm, was als Dienst läuft, welches sich beim Start, wie auch immer ADMIN Rechte besorgt, in dem man dann diese Alias einstellen könnte.

Gruß Jens

mkinzler 5. Aug 2009 21:38

Re: Ändern der Alias Adresse einer DB
 
Bei Diensten kann man direkt angeben, unter welchem Account sie gestartet werden sollen.

Jens Hartmann 5. Aug 2009 21:41

Re: Ändern der Alias Adresse einer DB
 
Alles klar,

danke erstmal. Werde mich mal damit auseinandersetzte und bei Gelegenheit bestimmt nochmal Fragen.

Gruß Jens


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