Hallo zusammen,
meine Applikation kann sowohl als Standalone System installiert werden (mit Firebird embedded 2.5) als auch in einem Netzwerk und dann mit Firebird als Dienst auf dem Server. Für Backup/Restore wollte ich die Komponenten IBBackupService und IBRestoreService nutzen, was mit der Serverinstallation auch problemlos funktioniert.
Die embedded-Version gibt mir aber die Fehlermeldung aus: "cannot attach to Services Manager".
Da alles andere in der Applikation auch mit embedded korrekt funktioniert, ist die generelle Einrichtung des embedded Firebird vermutlich OK und das Problem liegt in der Nutzung der Komponente.
Mache ich etwas falsch oder geht das mit embedded und IBBackupService grundsätzlich nicht?
Info: es funktioniert weder mit hostname = "localhost" noch Hostname ="" (leer)
Hier der Quellcode:
												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 
 | procedure TfrmMain.menuBackupClick(Sender: TObject);var
 Zielordner: String;
 wjahr, wmonat, wtag: word;
 slProtokoll: TStringList;
 begin
 with dmBISaM_SQL do
 begin
 CloseDB;
 ZConnection1.Disconnect;
 IBBackupService1.ServerName := ZConnection1.HostName;
 Zielordner := 'C:\Backup';
 slProtokoll := TStringList.Create();
 if length(Zielordner) > 0 then
 with IBBackupService1 do
 begin
 DecodeDate(date, wjahr, wmonat, wtag);
 BackupFile.clear;
 Zielordner := Zielordner + '\' + Format('%0.4d', [wjahr]) + Format('%0.2d', [wmonat]) + Format('%0.2d', [wtag]) + '_BISAM_SQL.FBK';
 BackupFile.add(Zielordner);
 DatabaseName := ZConnection1.Database;
 attach;
 try
 ServiceStart;            while not eof do
 slProtokoll.add(getnextline);
 if Active = True then
 detach;
 except
 on E: Exception do
 begin;
 slProtokoll.Add(E.Message);
 showMessage(slProtokoll.text);
 end;
 end;
 ShowMessage(Format(rsBackupCompleted, [Zielordner, ServerName]));
 slProtokoll.Free;
 OpenDB;
 end;
 end;
 end;
 | 
		
	  
Habe schob Stunden gegoogelt, aber keinen echten Hinweis gefunden, ob es gar nicht funktionieren kann und ich auf einen ganz anderen Weg umstellen muss (GBAK, andere Komponenten,...) oder ob es sich nur um einen Fehler in meinem Code handelt und mit weniger Aufwand gelöst werden kann, als das Verfahren komplett umzustellen.
Danke für jeden Hinweis 
Siegbert
Moderiert von  Narses: Code- durch Delphi-Tags ersetzt
Narses: Code- durch Delphi-Tags ersetzt