Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

TIBBackupService i ProgressBar

[es] :: Pascal / Delphi / Kylix :: TIBBackupService i ProgressBar

[ Pregleda: 3103 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

franjo_tahi2
Franjo Tahi
Zagreb

Član broj: 289851
Poruke: 43
*.adsl.net.t-com.hr.



Profil

icon TIBBackupService i ProgressBar18.09.2014. u 08:56 - pre 115 meseci
Koristim TIBBackupService za backup FB baza podataka.
Da li postoji način da se backup veže sa progressbarom, tj. da se sazna max vrijdnost za progressbar? Nisam uspio ništa pronači na web-u.

verbose me ne zadovoljava, ne trebaju mi linije izvršenja već progress, da korisnik zna koliko mu je ostalo do kraja (bar približno) i da se program nije zamrznuo.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: TIBBackupService i ProgressBar18.09.2014. u 11:04 - pre 115 meseci
Nisam isprobao, ali probaj ovo: Progress bar
Koliko sam skužio, gleda lines koje se izvršavaju i ovisno o tome daje postotke.
F
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon Re: TIBBackupService i ProgressBar18.09.2014. u 12:32 - pre 115 meseci
Doduše ja radim s IBDAC kontrolama, no mislim da je smisao isti.

Kod mene:
Code:

... isječak
with bs1 do
        begin
          Server := Config.dbCon.Server;
          Database := Config.dbCon.Database;
          Username := Config.dbCon.Username;
          Password := Config.dbCon.Password;
          ClientLibrary := Config.dbCon.ClientLibrary;
          LoginPrompt := Config.dbCon.LoginPrompt;
          BackupFile.Clear;
          BackupFile.Add( TITHelper.addslash( Config.Path.BackupTemp ) + dbn + '.FBK' );
          Verbose := True;
          Attach;
        end;
      try
        bs1.ServiceStart;
        while not bs1.Eof do
          begin
            meProgress.Lines.Add( bs1.GetNextLine );
            if pbProgress.Position >= pbProgress.Max
            then
              pbProgress.Position := pbProgress.Min;
            pbProgress.StepIt;
            Application.ProcessMessages;
          end;
      finally
        bs1.Detach;
        CodeSite.SendNote( 'BACKUP STOP SVC' );
      end;


Kroz ovu petlju backup service vraća poruke koliko i što je odradio i napredak, odnosno šalje poruke.
Nisam gleda, postoji li i kakav recordcount, zadovoljio sam se samo hvatanjem poruka u log i kakvim-takvim progressom.

Inače imam složen mehanizam za gbak i nbackup, kroz TIBCBackupService i lokalno na svakom klijentu mogu pamtiti podatke o inkrementalnim backupovima na nivou svake baze i generaciji kopija, a kod gbak-a. održavam maksimum n generacija backupova, a prijašnje brišem. Plus dodatno mogućnost zipanja backupova. Nbackup mi je draži jer za izradu backupova na klijent ne moram koristiti zavrzlame sa sheranim backup folderom na serveru.

Realno ne možeš znati koliko on ima posla za odraditi. Primjer iz posta gore također ne riješava taj problem. U tom primjeru prati po ključnim riječima i segmentima backupa; koliko je odradio (koliko sam na brzinu bacio oko na kod). Najviše će vremena trošiti na backup tablica, a taj korak vrednuje jednako kao i backup svih ostalih db objekata što je nerealno.

U obradama za koje ne znam koliko traju i kolika im je krajnja vrijednost stavljam kružni progressbar i samo obavještavam koliko proces traje (razna kopiranja, obrade i sl.) i uglavnom ih radim kroz threadove i sinhroniziram podatke na forme.

Kako vi imate riješen backup IB/FB baza?
God is real unless is declared as integer.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: TIBBackupService i ProgressBar18.09.2014. u 13:09 - pre 115 meseci
Nekoliko mogucnosti:
Koristi neki kružni progress bar (koji se stalno vrti)
Ako se radi o bekapu iste baze da svaki put sačuvaš trajanje backupa i onda kod narednog vidiš trajanje prethodnog i na osnovu toga prikažeš progress.
Da pre početka bekapa vidiš broj domena, indeksa, sve tabele i broj rekorda u njima i onda tokom bekapa pratiš gbak output i na osnovu toga vidiš gde si.

Najlakši ti je način broj 2.


 
Odgovor na temu

franjo_tahi2
Franjo Tahi
Zagreb

Član broj: 289851
Poruke: 43
*.adsl.net.t-com.hr.



Profil

icon Re: TIBBackupService i ProgressBar18.09.2014. u 14:37 - pre 115 meseci
Zahvaljujem na brzim odgovorima. Upravo sam tako i ja mislio: pamtiti posljednje vrijeme backupa i njega koristiti kao max za progressbar.
Možda probati s timerom da mi progress fino klizi... a i lakše mi je nogo pamtiti broj linija. Na predhodni backup dodam nešto vremena.
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon Re: TIBBackupService i ProgressBar18.09.2014. u 14:45 - pre 115 meseci
Što ti opet može odstupati ovisno o broju aktivnih procesa, zauzetosti diska, opterećenju db servera i sl.
Sa psihološkog aspekta, korisnici se jaaaako pouzdaju u progressbar i ono što im serviraš. Ili će ti se buniti jer će po njima nešto završavati već na 80% ili će se čuditi što je progress došao do kraja, a još uvijek stoji na mjestu.
Zato je po meni kao što sam pisao umjesto gatanja iz dlana bolje im ponuditi cirkularni progress koji se kod svake odrađene linije zavrti za jedan korak i neke informacije na kraju koliko je trajalo, je li sve ok, gdje je zapisano itd.
God is real unless is declared as integer.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: TIBBackupService i ProgressBar

[ Pregleda: 3103 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.