AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird embedded DB austauschen
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird embedded DB austauschen

Ein Thema von user0815 · begonnen am 4. Jan 2013 · letzter Beitrag vom 4. Jan 2013
 
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#1

Firebird embedded DB austauschen

  Alt 4. Jan 2013, 08:38
Datenbank: Firebird • Version: 2.5.1 • Zugriff über: UniDAC
Ich installiere mein Programm per "Inno Setup".
In das Anwendungsverzeichnis kommen alle dll´s usw. die firebird embedded benötigt. Die gbak.exe packe ich auch in das Anwendungsverzeichnis.

Unter Inno stelle ich folgendes ein:

Code:
[Files]
Source: "D:\xxx\db.fdb"; DestDir: "{app}"; Flags: ignoreversion confirmoverwrite; Permissions: authusers-modify;
Für eine Datensicherung rufe ich die gbak.exe wie folgt auf:

Delphi-Quellcode:
var
  Quelle, Ziel, Parameter : String;

Ziel := ' "' + SaveDialog.FileName + '"';
  Parameter := '-v -t -user sysdba -password masterkey '+ Quelle +' '+ Ziel;
  ShellExecute(0,nil,PChar(ExeProgramDirectory + 'gbak.exe'),PChar(Parameter),nil,SW_SHOW);
Die Datenwiederherstellung läuft ähnlich, die Datenbankbezeichnung darf allerdings noch nicht vorhanden sein.

Delphi-Quellcode:
var
  BackupFile, DatabaseFile, Parameter : String;
...
  Parameter := '-c -v -user sysdba -password masterkey '+ BackupFile +' '+ DatabaseFile;
  try
    ShellExecute(0,nil,PChar(ExeProgramDirectory + 'gbak.exe'),PChar(Parameter),nil,SW_SHOW);
  except
    on E:Exception do ShowMessage(E.Message);
  end;
Hier erhalte ich die Fehlermeldung ‚Auszug‘:
"gbak: ERROR: I/O error during “CreateFile <create>“ operation for file Datenbankverzeichnis + Datenbankname"
"gbak: ERROR: Error while trying to create file"
"gbak: ERROR: Zugriff verweigert"
"gbak: ERROR: failed to create database Datenbankverzeichnis + Datenbankname"
"gbak: Exiting before completion due to erros"

Denke das hängt mit den Schreibrechten für CSIDL_PROGRAM_FILES zusammen.

Versuche ich jetzt die Datenbank manuell auszutauschen so geht das auch nicht. Bei der Datenbank aus dem Inno Setup steht unter: Rechtsklick – Sicherheit: Authentifizierte Benutzer -> Ändern, Lesen, Ausführen, Schreiben
Kopiere ich die Datenbank einfach in das Anwendungsverzeichnis so fehlt dieser Eintrag Authentifizierte Benutzer. Nur der normal Benutzer ist mit den Rechten -> Lesen, Ausführen vorhanden. Die nur reinkopierte DB kann ich nicht benutzen.

Frage:
Wie kann ich die embedded DB gegen eine andere DB austauschen, für Support oder was auch immer?
Muss die Datenbank doch woanders liegen?
Muss ich andere Rechte in Inno Setup mitgeben?

Grüße
user0815
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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