[Delphi] ProgressBar a DataBase

0

Czy ktoś z was wie jak zrobić aby postęp przeszukiwania bazy danej (wykorzystuję tu polecenie SQL'a, a baza jest typu Paradox podłączona za pomocą BDE) pokazywany był na ProgressBarze.

Wdzięczny za wszelkie sugetie i propozycje. ;)

0

Jeśli przeszukujesz jedną tabelę to zrób tak:

  • pobierz ilość rekordów z tabeli (TTable.RecordCount) - to jest twoje 100%
  • po przeszukaniu każdego rekordu: pobierz numer tego rekordu (TTable.RecNo - chyba ta funkcja ale nie jestem pewien - sprawdź w helpie), podziel przez ilość rekordów i pomnórz przez 100. To jest aktualny procent przeszukanej tabeli.
  • przypisz wynik uzyskany w poprzednim podpunkcie do ProgressBara.

U mnie ta metoda działa, ale pisałem ją już dość dawno i mogłem to trochę mętnie wyjaśnić (nire mam tej procedury przy sobie bo piszę z kafejki).

0

Dzięki "waldini"!
Wyjasniłeś to w bardzo zrozumiały sposób. ;)

Problem jest w tym że ja szukam za pomocą SQL'a

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Moje zapytanie');
Query1.Open;

a jak ten kodzik się urouchomi to nie mam możliwości (chyba że ktoś zna sposób) sprawdzenia numeru aktualnie przeszukiwanego rekordu.

Jeżeli szukałbym rekord porekordzie (nie za pomocą SQL'a) to Twój sposób jest jak najbardzie właściwy.

0

Ja co prawda nie wiem jak to zrobić ale mój pomysł jest następujący:
nie szukaj jaki jest aktualny nr rekordu czy tam krotki bo jeżeli szukasz do skutku czyli aby znaleźć konkretną wartość to wyszukiwanie może się zakończyć w różnym czasie a jeżeli będziesz za każdym razem przeszukiwał całą tabelę to przy więkrzych bazach będzie to cię.....żkie :/
Spróbuj sprawdzić czy baza podczas zapytania nie może zwrócić przywidywanego czasu zakończenia operacji... i na tej podstawie spróbuj zrobić progressbar.

3MKA ;)

0
irek napisał(a)

Spróbuj sprawdzić czy baza podczas zapytania nie może zwrócić przywidywanego czasu zakończenia operacji... i na tej podstawie spróbuj zrobić progressbar.

Tylko jak to zrobić [!!!]
Pozdr. ;)

0

Trudno mi odpowiedzieć, ale spróbuj poszukać czegochś na temat

GetTickCount;
0
irek napisał(a)

...spróbuj poszukać czegochś na temat

GetTickCount;

Do tej pory co znalazłem to tylko to, że można za pomocą tej funkcji określić jaki czas było coś wykonywane np. pętla, nie znalazłem niestety nic jak zmierzyć czas ile to będzie wykonywane.

Może jeszcze jakieś pomysły, a może zna ktoś komponent (darmowy) który by mój problem rozwiązał.

Pozdr. ;)

0

W pakiecie JEDI 3.00 w zakładce Jv Data Controls jest coś takiego jak JvDBProgressBar, ale czy działa nie wiem, nie próbowałem :(

0

Dzięki "Młody" ;)
na razie sprawdziłem tylko w "Jvcl MegaDemo" ale tam w tej zakładce nie znalazłem, może po zainstalowaniu sie pojawi. To już zrobię jutro - mam nadzieję że tam będzie.

Pozdro. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1