Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr (https://www.delphipraxis.net/174083-backup-mittels-tibbackupservice-funktioniert-unter-xe2-nicht-mehr.html)

TheFrog 2. Apr 2013 16:05

Datenbank: FireBird embedded • Version: 2.5 • Zugriff über: IBX

Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
Wir haben unsere Applikation von Delphi 7 auf XE 2 umgestellt. Unter Delphi 7 funktionierten die IBX-Komponenten bisher einwandfrei. Unter XE 2 habe ich jedoch Probleme mit TIBBackupService.

Ich dachte zuerst, dass es an FB 2.5 liegt, jedoch erhalte ich den gleichen Fehler auch, wenn ich eine FB 1.5 verwende. Wie gesagt unter Delphi 7 hat es noch funktioniert.

Hier mal der Code für den Backup:
Delphi-Quellcode:
procedure TForm1.btnBackupDBClick(Sender: TObject);
var
  FBackupFile: string;
  IBBackup: TIBBackupService;
begin
  FBackupFile := GetBackupFileName;

  IBBackup := TIBBackupService.Create(nil);
  try
    IBBackup.Params.Add('user_name=SYSDBA');
    IBBackup.Params.Add('password=masterkey');
    IBBackup.Verbose := True;
    IBBackup.LoginPrompt := False;
    IBBackup.Active := True;
    IBBackup.DatabaseName := FIBDatabase.DatabaseName;
    IBBackup.BackupFile.Add(FBackupFile);
    IBBackup.ServiceStart;
  finally
    IBBackup.Active := False;
    IBBackup.Free;
  end;
end;

Der Absturz geschieht beim Setzen der Property Active auf True. Die Komponente stürzt mit einer access violation ab.

Hat irgendwer eine Ahnung, an was es liegen kann.

Danke im Voraus, Hans.

Lemmy 2. Apr 2013 17:28

AW: Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
Zitat:

Zitat von TheFrog (Beitrag 1209726)
Hat irgendwer eine Ahnung, an was es liegen kann.

daran, dass IBX nicht kompatibel zu Firebird ist, war und jemals sein wird. Ändert auch nichts daran, dass es unter Delphi XYZ in Kombination mit Firebird Version K funktioniert.

Wenn es schnell gehen muss mit der Umstellung, dann die Backupfunktion mit UIB oder einer anderen Kaufkomponente abdecken. IBDac haben einen schönen WIzard, da konnte ich in ein paar Tagen eine Anwendung recht schmerzfrei von IBX nach IBDAC umstellen.


Grüße

Neumann 2. Apr 2013 17:31

AW: Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
Man kann einfach gbak.exe mit den entsprechenden Parametern aus seinem Programm aufrufen. Es sollte dann möglichst im Programmverzeichnis liegen, ebenso die fbclient.dll, dann hat man es etwas einfacher. Problem könnte es ev. mit der Embedded-Version von Firebird geben, da man einen 2. Zugriff auf die Datenbank braucht.

Ralf

TheFrog 3. Apr 2013 08:21

AW: Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
@Lemmy:
Ist mir schon klar, dass es eine fragwürdige Kombination mit IBX und FB ist, liest man ja auch immer wieder, aber manchmal sind einem die Hände gebunden.

@Ralf:
Kann ich den gbak einfach so mit ausliefern? Wegen dem mehrfachen Zugriff auf FB embedded sollte sich das Problem doch mit FB 2.5 gelöst haben, wenn ich richtig liege.

Vielen Dank für die Antworten!

Hans.

Lemmy 3. Apr 2013 09:05

AW: Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
Zitat:

Zitat von TheFrog (Beitrag 1209775)
@Lemmy:
Ist mir schon klar, dass es eine fragwürdige Kombination mit IBX und FB ist, liest man ja auch immer wieder, aber manchmal sind einem die Hände gebunden.

Schlecht - aber halt es wenigstens im Hinterkopf und warne kräftig - wenn euch die Anwendung dann auf die Füße fällt, kannst Du wenigstens noch sagen: Ich habe euch gewarnt... ;-)


Zitat:

Zitat von TheFrog (Beitrag 1209775)
@Ralf:
Kann ich den gbak einfach so mit ausliefern? Wegen dem mehrfachen Zugriff auf FB embedded sollte sich das Problem doch mit FB 2.5 gelöst haben, wenn ich richtig liege.

Ja du kannst die Tools ausliefern, wenn Du die nicht als deine eigenen ausgibst ;-)
Wegen Zugriff: Schau dir gbak an, mir war als ob das Teil exklusiven Zugriff braucht (ist schon zu lange her). Teste auch mal UIB (die brauchst DU nicht mal in der IDE zu installieren), die können die Service-API recht gut...

GRüße

TheFrog 3. Apr 2013 09:17

AW: Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
Danke für die Antwort!

Werde mal mit gbak experimentieren und mir auch UIB anschauen.

Hans.

Nersgatt 3. Apr 2013 09:20

AW: Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
[QUOTE=Lemmy;1209779]
Zitat:

Zitat von TheFrog (Beitrag 1209775)
Schau dir gbak an, mir war als ob das Teil exklusiven Zugriff braucht (ist schon zu lange her).

Nein, GBAK braucht keinen exclusiven Zugriff. GBak startet eine eigene Transaktion für das Backup. Die Rücksicherung geht natürlich nur mit exclusiven Zugriff.

TheFrog 3. Apr 2013 10:17

AW: Backup mittels TIBBackupService funktioniert unter XE2 nicht mehr
 
Bin jetzt mit den Tests mittels gbak soweit durch!

Ich bin folgendermassen vorgegangen:

Da die embedded Version von FB kein gbak besitzt, habe ich einfach sowohl gbak, als auch die fbclient.dll aus einer FB 2.5 - Version in mein Applikationsverzeichnis kopiert (zusätzlich zu den Dateien, welche von FireBird embedded schon vorhanden waren).

Danach habe ich Backup und Restore über gbak aufgerufen, was wunderbar funktioniert hat.

Nun meine abschließende Frage:

Kann ich so einfach die beiden Dateien (gbak, fbclient) aus einer Voll-Installation kopieren und darf ich diese auch verwenden, d.h. mit dem Programm mit ausliefern?

Hans.


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