logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] [Access] Automatyczne aktualizacje frontendu: skrypt do sprawdzania i pobierania nowych wersji

Duck71 20 Sty 2021 19:22 471 6
REKLAMA
  • #1 19198336
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Chciałbym aby baza frontendu aktualizowała się automatycznie po pojawieniu się zmian.
    Fukcjonalnie chciałbym aby odbywało się to mniej więcej tak:
    - nowo skompilowany plik frontendu dla użytkownika zawierający zmiany zostaje wgrany do określonego zasobu sieciowego w firmie
    - podczas uruchomienia na lokalnym kompie poprzedniej wersji Autoexec sprawdza dostępność aktualizacji (porównując np. nr wersji zapisany we frontendzie i backendzie)
    - jeśli jest aktualizacja nowy plik zostaje pobrany w miejsce starego i uruchomiony.

    W pierwszych próbach założyłem, że frontend będzie sprawdzał dostępność aktualizacji i w przypadku jej wystąpienia uruchomi drugi accde, który: zrobi kopię zapasową -->pobierze nową wersję --> przy Err=0 usunie kopię zapasową--> uruchomi pobrany frontend.
    Sądziłem, że zamknięcie starego frontendu zaraz po wywołaniu update.accde załatwi sprawę kodu 70 (premission denied)
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    Niestety, użycie FollowHyperlink'a przekazuje sterowanie do update.accde i do jego zamknięcia nie wykonuje dalszych linii kodu (tak wynika z moich obserwacji..) a co za tym idzie, podczas kopiowania nowej wersji frontendu otrzymuję błąd nr 70 - brak dostępu. Używam Hyperlinka, ponieważ Shell nie akceptuje spacji w ścieżce do pliku.
    Jak zatem rozwiązać problem auto aktualizacji?
  • REKLAMA
  • #2 19198701
    PRL
    Poziom 41  
    Posty: 6988
    Pomógł: 953
    Ocena: 924
    Cytat:
    Shell nie akceptuje spacji w ścieżce do pliku


    Ścieżka powinna być umieszczona w cudzysłowach.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 19198824
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    PRL napisał:
    Cytat:
    Shell nie akceptuje spacji w ścieżce do pliku


    Ścieżka powinna być umieszczona w cudzysłowach.



    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    nie wystarczy?
  • REKLAMA
  • #5 19214523
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Jak się okazuje Shell potrzebuje 'łańcucha w łańcuchu'.. To już ogarnięte. Przydatne fragmenty kodu znalazłem tutaj - dzięki PRL za link.
    Co do samego problemu rozwiązałem go następująco:
    frontend bazy sprawdza w Autoexec nr wersji w tabeli backendu i porównuje z wersją zapisaną w lokalnej w tabeli frontendu. Oczywiście jeśli nie są zgodne poleceniem Shell uruchamiam UPDATE.accde a w kolejnej linii zamykam frontend. UPDATE.accde uruchamia się formularzem AKTUALIZACJA, który oczekuje na potwierdzenie pobrania aktualizacji. Dopiero po uzyskaniu potwierdzenia rozpoczyna się cały proces. Daje to niezbędny czas na zamknięcie frontendu, które też chwilę trwa. Po skopiowaniu plików ponownie Shell'em otwieram frontend i zamykam UPDATE.accde
    Być może da się to zrobić lepiej, ładniej, poprawniej, ale to działa :-)
  • REKLAMA
  • #6 19223927
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Jak się okazuje Shell potrzebuje 'łańcucha w łańcuchu'.. To już ogarnięte. Przydatne fragmenty kodu znalazłem tutaj - dzięki PRL za link.
    Co do samego problemu rozwiązałem go następująco:
    frontend bazy sprawdza w Autoexec nr wersji w tabeli backendu i porównuje z wersją zapisaną w lokalnej w tabeli frontendu. Oczywiście jeśli nie są zgodne poleceniem Shell uruchamiam UPDATE.accde a w kolejnej linii zamykam frontend. UPDATE.accde uruchamia się formularzem AKTUALIZACJA, który oczekuje na potwierdzenie pobrania aktualizacji. Dopiero po uzyskaniu potwierdzenia rozpoczyna się cały proces. Daje to niezbędny czas na zamknięcie frontendu, które też chwilę trwa. Po skopiowaniu plików ponownie Shell'em otwieram frontend i zamykam UPDATE.accde
    Być może da się to zrobić lepiej, ładniej, poprawniej, ale to działa :-)
  • #7 19282107
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Temat zamykam

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono temat automatycznych aktualizacji frontendu w bazie danych. Użytkownik zaproponował, aby frontend sprawdzał dostępność aktualizacji przy uruchomieniu, porównując numery wersji z backendem. W przypadku niezgodności, frontend miałby uruchomić skrypt UPDATE.accde, który wykonuje kopię zapasową, pobiera nową wersję, a następnie uruchamia zaktualizowany frontend. Uczestnicy dyskusji zasugerowali, że ścieżki w kodzie powinny być umieszczone w cudzysłowach oraz że polecenie Shell może być użyte do uruchomienia aktualizacji. Ostatecznie, rozwiązanie zostało zaimplementowane, a temat został zamknięty.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA