Dodaj do ulubionych

Kolejność działań w programach

09.10.15, 14:21
Od kilku dni szukam przyczyny SPORADYCZNYCH "zwieszeń" Access'a.
Mam kilka procedur uruchamianych automatycznie w kolejności , np. A, B, C ...
Procedury A i C działają wyłącznie "w obrębie Access'a i VB", procedura B wykorzystuje dodatkowo sterownik ODBC (łączenie z zewnętrzną bazą MySql".
I teraz moje główne pytanie. Czy napewno wszystkie operacje są wykonywane "szeregowo", czyli czy ZAWSZE kolejny "krok" programu musi zostać zakończony, nim zacznie się wykonywanie następnego kroku/polecenia ... Nawet, jeśli następuje (na polecenie z kodu VB) uruchomienie jakiegoś procesu "zewnętrznego" dla Access'a (łączenie z zewnętrzną bazą i "wczytywanie" danych do tabeli połączonej)?
Mój "cienki" domysł jest taki, że winowajcą może być chwilowe spowolnienie łącza internetowego, co powodowałoby niedostępność pewnych danych w momencie działania procedury VBA, ale trochę w to wątpię ...
Obserwuj wątek
    • hetman_twardowski Re: Kolejność działań w programach 10.10.15, 21:26
      Kolejność działań określa program, a programy robią ludzie.

      Zatem w przypadku gdy algorytm jest równolegle realizowany,
      to znaczy jest podzielony na pewne fragmenty,
      które realizują częściowe zadania, produkując wyniki pośrednie,
      które są potem używane w innych etapach obliczeń,
      no to musisz to wszystko zsynchronizować odpowiednio...
    • kocinos Re: Kolejność działań w programach 11.10.15, 16:53
      He, he ... Tylko jak się upewnić KTÓRE działanie powoduje wpadkę, skoro 117 razy tok procedur wykonuje się poprawnie, a 118 raz zwiesza, przy czym powtórzenie procedury (po zamknięciu debugu i bez żadnych zmian w kodzie) wykonuje się znów poprawnie? Szukać "w ciemno"?
      To, że debug pokazuje linijkę kodu, która "się wysypała", nie daje mi pewności. Konkretnie info, że kwerenda "musi był aktualizowalna" nic mi nie daje, bo ZAZWYCZAJ ta kwerenda się wykonuje bez problemu, a - skoro jest zrobiona na tabeli połączonej via ODBC - jedyną przyczyną jaką sobie mogę wyobrazić jest spowolnienie łącza internetowego, przez co próba odczytania danych przez kolejną linijkę kodu się sypie, bo dane się jeszcze "nie wczytały" do tabeli połączonej ...
      Dlatego pytałem, czy w ogóle w tego typu sytuacji te działania mogą być "równoległe" = czy może nastąpić próba odczytania kwerendy ZANIM tabela połączona (będąca źródłem tej kwerendy) ściągnie sobie dane ...
      Założę, że może tak być i coś tam sklecę, ale to tak trochę na ślepo będzie ...

Popularne wątki

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka