AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DB Restore mit Fibplus
Thema durchsuchen
Ansicht
Themen-Optionen

DB Restore mit Fibplus

Ein Thema von manfred_h · begonnen am 1. Nov 2006 · letzter Beitrag vom 1. Nov 2006
Antwort Antwort
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#1

DB Restore mit Fibplus

  Alt 1. Nov 2006, 14:23
Datenbank: Firebird • Version: 1.5 • Zugriff über: Fibplus
Hallo zusammen

habe ein Problem mit dem Restore einer DB bei dem immer die Fehlermeldung

Exception class EStringListError with message 'List index out of bounds (0)'

auftaucht.

Delphi-Quellcode:
procedure Tfrm_backup_restore.btn_restoreClick(Sender: TObject);
begin
  with DM.Restore_Service do
  begin
    OpenDialogBackup.Options := [ofFileMustExist];
    if not (OpenDialogBackup.Execute) then exit;
    Options := [Replace, CreateNewDB];
    DatabaseName.Clear;
    BackupFile.Clear;
    memo_log.Clear;
    memo_log.Lines.Add('*** Database file(s): ***');
    for i := 0 to OpenDialogDatabase.Files.Count - 1 do
    memo_log.Lines.Add('*** Backup file(s): ***');
    DatabaseName.Add (IncludeTrailingPathDelimiter(GetCurrentDir)+('GIDEONS_DB.FDB'));
    for i := 0 to OpenDialogBackup.Files.Count - 1 do
    begin
      BackupFile.Add(OpenDialogBackup.Files.Strings[i]);
      memo_log.Lines.Add(OpenDialogBackup.Files.Strings[i]);
    end;
    memo_log.Lines.Add(
    '==================== Restore started ====================');
    Active := True;
    btn_backup.Enabled := False;
    btn_restore.Enabled := False;
    ServiceStart;
    while not (Eof) do
      memo_log.Lines.Add(GetNextLine);
    Active := False;
    btn_backup.Enabled := True;
    btn_restore.Enabled := True;
    memo_log.Lines.Add(
    '==================== Restore ended ====================');
  end;
end;
kann mir da jemand weiterhelfen.
Bin schon seit einiger Zeit am Testen.

Shalom
Manfred
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: DB Restore mit Fibplus

  Alt 1. Nov 2006, 15:00
Das da hat mit FIBplus aber wirklich nur bedingt zu tun. Aus dem Source glaube ich erkennen zu können, daß es zwei Memos oder was ganz anderes gibt, wo Dateinamen aufgelistet werden. Die Glaskugel vermutet, das wäre deshalb so, weil es eventuell um eine Auswahl verschiedener Backups geht. Kommt mir wegen der Fehlermeldung aber so vor, als würde es lediglich an den Schleifen liegen. Deshalb kurz und knapp : die Erläuterung was was ist und der (unkommentierte) Source ist zu knapp.
Gruß
Hansa
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: DB Restore mit Fibplus

  Alt 1. Nov 2006, 15:21
Hallo Hansa

Delphi-Quellcode:
procedure Tfrm_backup_restore.btn_restoreClick(Sender: TObject);
begin
  with DM.Restore_Service do
  begin
    Options := [Replace, CreateNewDB];
    DatabaseName.Clear; // Database Paramameter Clear
    BackupFile.Clear; // BackupFile Paramameter Clear
   DatabaseName.Add (IncludeTrailingPathDelimiter(GetCurrentDir)+('GIDEONS_DB.FDB'));
   BackupFile.Add (IncludeTrailingPathDelimiter(GetCurrentDir)+('gideons_db_backup__01.11.2006.gbk'));
    memo_log.Lines.Add(
    '==================== Restore started ====================');
    Active := True; // FIBPlus Backup Service Active
    btn_backup.Enabled := False; // Backupbutton diabled
    btn_restore.Enabled := False; // Restorebutton diabled
    ServiceStart; // FIBPlus Backup Service Start
    while not (Eof) do // Logoutput to memo_log
      memo_log.Lines.Add(GetNextLine);
    Active := False; // FIBPlus Backup Service Active
    btn_backup.Enabled := True; // Backupbutton enabled
    btn_restore.Enabled := True; // Restorebutton enabled
    memo_log.Lines.Add(
    '==================== Restore ended ====================');
  end;
end;
Habe das ganze versucht ein wenig zu Dokumentieren ( ma lernt immer dazu )
Das Memofeld ist nur dazu da um den Output ( Log ) darzustellen damit der User sieht
das was läuft.
Die Auswahl der Dateien habe ich rausgenommen um dem Problem ein wenig
näher zu kommen. ...

Der Fehler tritt immer noch auf. ( mit obigem Code )

Manfred
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: DB Restore mit Fibplus

  Alt 1. Nov 2006, 15:25
Hallo manfred_h,

sind die drei Listen DatabaseName, BackupFile und memo_log mit Create erstellt worden, bevor du hier Clear aufrufst?

Ist es korrekt, dass du OpenDialogBackup.Execute aufrufst, aber hinterher auf OpenDialogDatabase zugreifst?

[add]
Wo kommt GetCurrentDir her?
[/add]
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#5

Re: DB Restore mit Fibplus

  Alt 1. Nov 2006, 15:36
Zitat von MrSpock:
sind die drei Listen DatabaseName, BackupFile und memo_log mit Create erstellt worden, bevor du hier Clear aufrufst?

Hallo MrSpock

Die "Komponenten ( DatabaseName, BackupFile )" sind in einem Datamodule da muss ich die doch nicht noch mit create erstellen?

Die Memokomponente funktionier auch aber sobald
Delphi-Quellcode:
  
 Active := False; // FIBPlus Backup Service Active
ausgeführt wird kommt die Fehlermeldung.

Zitat von MrSpock:
Ist es korrekt, dass du OpenDialogBackup.Execute aufrufst, aber hinterher auf OpenDialogDatabase zugreifst?
Das war ein Fehler und hab in auch entfernt. Danke.

Shalom
Manfred

>>MrSpock
Wo kommt GetCurrentDir her?
> Wie meinst Du das?
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: DB Restore mit Fibplus

  Alt 1. Nov 2006, 16:01
Hallo esten dank für Eure Hilfe

Das Problem war das ich die Userdaten nicht übergeben habe:

Delphi-Quellcode:
procedure Tfrm_backup_restore.btn_restoreClick(Sender: TObject);
begin
  with DM.Restore_Service do
  begin
    Params.Add ('user_name=sysdba');
    Params.Add ('password=masterkey');
    Options := [Replace, CreateNewDB];
    DatabaseName.Clear; // Database Paramameter Clear
    BackupFile.Clear; // BackupFile Paramameter Clear
   DatabaseName.Add (IncludeTrailingPathDelimiter(GetCurrentDir)+('GIDEONS_DB.FDB'));
   BackupFile.Add (IncludeTrailingPathDelimiter(GetCurrentDir)+('gideons_db_backup__01.11.2006.gbk'));
    memo_log.Lines.Add(
    '==================== Restore started ====================');
    Active := True; // FIBPlus Backup Service Active
    btn_backup.Enabled := False; // Backupbutton diabled
    btn_restore.Enabled := False; // Restorebutton diabled
    ServiceStart; // FIBPlus Backup Service Start
    while not (Eof) do // Logoutput to memo_log
      memo_log.Lines.Add(GetNextLine);
    Active := False; // FIBPlus Backup Service Active
    btn_backup.Enabled := True; // Backupbutton enabled
    btn_restore.Enabled := True; // Restorebutton enabled
    memo_log.Lines.Add(
    '==================== Restore ended ====================');
  end;
end;
Danke Euch beiden.
Shalom
Manfred
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7

Re: DB Restore mit Fibplus

  Alt 1. Nov 2006, 17:11
Hallo Manfred,

ich wusste nicht, aus welchem Modul die Procedure GetCurrentDir stammt und ob der von der Prozedur übergebene Pfad eventuell inkorrekt ist.
Interessant ist nur, dass das Vergessen der Übergabe der Parameter eine nicht so gaaanz aussagekräftife Fehlermeldung hervorbringt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#8

Re: DB Restore mit Fibplus

  Alt 1. Nov 2006, 17:17
Hallo MrSpock

ja da gebe ich Dir recht.
Danke trozdem.

Shalom
Manfred
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:08 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