No ale przecież utracenie połączenia z bazą danych (np. brak internetu itd) zakończy transakcje, czy się mylę?
Niby czemu? SZBD nie obchodzi istnienie internetu, on dostaje zadanie do wykonania i będzie je wykonywał aż skończy. No chyba, że padnie zasilanie, powstanie deadlock i jakiś nadzorca ubije zablokowaną transakcję, albo klient wyśle żądanie przerwania. (Tak robią aplikacje dotnetowe, domyślnie po 10 minutach.)
Będzie to tabela z wieloma danymi, liczbowe/tekstowe. W trakcie tych kilku dni, będzie związany z nimi proces przetwarzania, a więc będą odejmowane/modyfikowane pewne wartości, ale to się rozkłada w czasie. Dlatego przez ten czas nie może być w tym konkretnym wierszu nic ruszane przez WSZYSTKIE pozostałe osoby, dopóki aplikacja która zablokowała dany rekord z powrotem jego nie odblokuje. Operacje będą wywoływane z aplikacji. Odczyt równolegle może być możliwy przez inne osoby, ale brak możliwości edycji.
A więc nie masz problemu technicznego lecz biznesowy. Rozwiązanie podał @abrakadaber, oznacz zablokowane przez aplikacje wiersze jakąś flagą, a po zakończeniu przetwarzania ją zdejmij.
Jeśli obawiasz się, że ktoś może modyfikować dane w bazie bezpośrednio, to jest to jakiś WTF - użytkownicy mają bezpośredni dostęp do bazy?!