Korzystam z ZeosLib 7.2 w Lazarusie 2.0.12 do dostępu do bazy Firebirda w wersji 3
Otwieram w aplikacji lazarusowej tabelę korzystając z TZQuery i widzę rekordy.
Następnie korzystając z aplikacji w PHP w przeglądarce dodaję do tabeli nowy rekord.
Odświeżam TZQuery lazarusowe korzystając z funkcji Close i Open jednak rekordy dopisane z przeglądarki nie pojawiają się, choć w bazie są bo Flamerobin je pokazuje.
W Lazarusie na ich pojawienie pomaga dopiero TZConnection Disconnect i Connect ale tego chciałbym uniknąć aby utrzymywać połączenie ciągle.
Wygląda tak jakby tabela była cacheowana lokalnie i działał jakiś mechanizm kontrolujący lokalnie zachowanie tabeli.
Cached updates mam wyłączone ale coś trzyma cache tabeli. Jeżeli zmodyfikuję tabelę z poziomu Lazarusa to oczywiście Close i Open działają.
Jakiś pomysł na rozwiązanie problemu bez rozłączania połączenia z bazą?
- Rejestracja:prawie 21 lat
- Ostatnio:prawie 3 lata

- Rejestracja:ponad 17 lat
- Ostatnio:około 2 godziny
- Postów:1597
Przyznam szczerze, że nigdy takich problemów nie miałem ale fakt nie robiłem aplikacji na firebird aby jednocześnie pracowało na niej php i aplikacja w delphi (lub lazarus). Zwaliłbym na php i brak commita ale skoro mówisz, że we flamerobin widzisz to znaczy, że commit poszedł. Jedyne co mi na ten moment przychodzi do głowy (bo nie mam serwera Firebird pod ręką aby sprawdzić) to sprawdź transactionisolationlevel na TZConnection bo może jest ustawione na tiReadCommited zamiast na tiNone.
- Rejestracja:ponad 21 lat
- Ostatnio:14 dni
- Postów:1083
Opanuj obsługę transakcji w ZEOS, bo ewidentnie tu leży problem.
Świadczy o tym dokładnie to, co napisałeś.
Poczytaj:
https://zeoslib.sourceforge.io/viewtopic.php?t=2644
Zastosuj się i będzie działać.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.