Autor Téma: Logovanie postupu zálohy do mema + progressbar  (Přečteno 3031 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Logovanie postupu zálohy do mema + progressbar
« kdy: 30-08-2020, 17:53:00 »

V návode čítam:
Citace
We use the -verify option to get a detailed trace of what gbak does and -y to pass it to a log file in another directory.
Ja by som to rád zobrazil v TMemo. K tomuProgressBar, ktorý by ukazoval stav procesu v %.
  • Ako sa dá riešiť výstup do TMemo? Čítať to zo súboru, do ktorého to je, predpokladám, priebežne ukladané?
  • Moja predstava je, že hodnoty pre ProgressBar by som odvodil od počtu tabuliek v DB a prebiehajúceho výpisu

W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1301
  • Karma: 51
    • Verze Delphi: 10.3
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #1 kdy: 30-08-2020, 18:28:20 »
Já kdysi použil TIBBackupService (je součástí IBX komponent, při instalaci Delphi je to myslím volitelná součást, tak nevím, zda je tam máš). Výhodou je, že není potřeba gbak, ale myslím, že tím není možné databázi ze serveru zazálohovat na lokál (záloha vznikne opět na serveru, což v mém případě bylo dobře, uživatel nemá mít možnost získat všechna data k sobě).

IBBackup: TIBBackupService;

Kód: [Vybrat]
   with IBBackup do begin
    Active:=false;
    Srv:=Config.d.DatabaseServer;
    while (Srv<>'')and(Srv[length(Srv)]=':') do Srv:=copy(Srv,1,length(Srv)-1);
    ServerName:=Srv;
    DatabaseName:=Config.d.DatabaseName;
    Params.Clear;
    Params.Add(Format('user_name=%s', [Config.d.DatabaseUser]));
    Params.Add(Format('password=%s', [Config.d.DatabasePassword]));
    Active:=true;
    try
     Verbose:=true;
     BackupFile.Add(cil);
     ServiceStart;
     while not EOF do begin
      eVysl1.Caption:=eVysl2.Caption;
      eVysl2.Caption:=eVysl3.Caption;
      eVysl3.Caption:=GetNextLine;
      Update;
     end;
    finally
     Active:=false;
    end;
   end;

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3343
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #2 kdy: 30-08-2020, 18:41:21 »
Ako sa dá riešiť výstup do TMemo? Čítať to zo súboru, do ktorého to je, predpokladám, priebežne ukladané?
To se delava tak, ze gbak spustis z vlastni aplikace a presmerujes mu standardni vystupy. Nekde na to byvala componenta (?DosCommand)


Citace
Moja predstava je, že hodnoty pre ProgressBar by som odvodil od počtu tabuliek v DB a prebiehajúceho výpisu
A spoustel jsi tu volbu -v na nejake naplnene databazi? Rekl bych, ze ten vypis je dost vzdaleny od tvych predstav.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #3 kdy: 30-08-2020, 19:18:53 »
Na tie DB komponenty som nepozeral. Možno má niečo aj FireDAC
Citace
A spoustel jsi tu volbu -v na nejake naplnene databazi? Rekl bych, ze ten vypis je dost vzdaleny od tvych predstav.
Nemám potuchy ako vyzerá. Tak som sa pozrel čo vypisuje môj DB manažér pri vytváraní zálohy. Je to nanič. A tie % sa z toho nedajú nijako odvodiť.
Idem študovať čo mám k dispozícii.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1301
  • Karma: 51
    • Verze Delphi: 10.3
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #4 kdy: 30-08-2020, 19:24:21 »
Název tabulky se tam určitě někde vyskytne... Ale taky by sis mohl pamatovat počet řádků, které byly na výstupu minule, počítat řádky teď a progress bar ukazovat podle toho (on se ten počet nijak dramaticky nemění a pokud už progress bar ukáže 100 % a přitom ještě bude pár položek dobíhat, uživatel si nejspíš stejně nevšimne).

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #5 kdy: 30-08-2020, 19:30:06 »
Tých riadkov je len 5484 :)
Našiel som tieto komponenty: viď obrázok. Sú tam samostatne pre FB. Takže to je nádejné. Ten výpis a tie % nie sú dôležité. Uvidím po preštudovaní komponentov.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #6 kdy: 30-08-2020, 19:37:56 »
Hm, vo voľbách má len NoTriggers. To IB ich má podstatne viac. Nemyslím si, že zrovna to by malo vadiť.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #7 kdy: 30-08-2020, 20:34:08 »
Podľa toho čo som čítal, tak sa to nedá použiť pre embeded verzie (bez inštalovaného DB servera). Škoda.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #8 kdy: 04-09-2020, 19:07:06 »
Čítam a čítam, nič nepíšem :D
Mám jednu otázku. Rozhodol som sa na zálohu a obnovu použiť TFDIBBackup a TFDIBRestore. Dôvodc - zodpovedajúce komponenty FB majú k dispozícii jediný parameter. Popis k nim je dosť stručný. Vychádzam z opisu parametrov gbak pre FB. Jedná sa mi o obnovu DB. Vo FB sú
  • -c[reate_database] - obnoví databázu do nového súboru
  • -r[ecreate_database] - obnoví databázu...
  • -rep[lace_database] - obnoví databázu...
Druhý a tretí parameter sú označené ako "zabijaci DB". Neodporúčajú ich používať.
TFDIBRestore má parameter roReplace. Mám existujúcu DB, ktorú chcem obnoviť. Pre obnovu použijem názov existujúcej DB. Otázky znejú:
  • Postará sa tento komponent aj o to, že ak zlyhá obnova, ta neprídem o existujúcu DB?
  • Predpokladám, že nemám použiť roReplace
Ďakujem.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #9 kdy: 05-09-2020, 10:30:02 »
Zistil som, že mám právo pozrieť sa do jednotky :o Tak to idem urobiť.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #10 kdy: 05-09-2020, 12:00:09 »
Až na to, že je FireDAC zdrojáky nemám :'( , lebo mám ver. professional. Tak znovu prosím o odpoveď.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #11 kdy: 07-09-2020, 16:27:38 »
Záloha mi ide. Obnovenie DB nie
Kód: [Vybrat]
try
  dtmdBasic.conFoc.Connected := False;
  FDIBRestore1.Restore; // '[FireDAC][Phys][FB]could not drop database D:\Dokumenty\Delphi XE7\JasotSVB\Data\
                        // JASOTSVB.FDB (database might be in use)
                       // unknown ISC error 336330835
  dtmdBasic.conFoc.Connected := True //offchbBringDBOnline.Checked;
except
end;
Určite ju nemám otvorenú v inej aplikácii. Jedine v Delphi.
Čo s tým?
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1301
  • Karma: 51
    • Verze Delphi: 10.3
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #12 kdy: 07-09-2020, 16:31:13 »
Určite ju nemám otvorenú v inej aplikácii. Jedine v Delphi.
Čo s tým?

Zavřít ji v Delphi? ;-)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #13 kdy: 07-09-2020, 16:43:17 »
A dtmdBasic.conFoc.Connected := False; robí čo? Žijem v tom, že ju odpojí od DBMS.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1301
  • Karma: 51
    • Verze Delphi: 10.3
Re:Logovanie postupu zálohy do mema + progressbar
« Odpověď #14 kdy: 07-09-2020, 16:45:37 »
Jo, to by mělo odpojit. Taky ta Tvoje aplikace nesmí mít otevřené spojení (tj. ani běžící aplikace, ani Delphi v designtime).