Databáze > MySQL

Firedac Query nezobrazí aktualizovaná data

(1/2) > >>

rholecek:
Mám DB aplikaci, která čte data z MySQL pomocí FireDac query.
Při prvním spuštění SQL to načte data, které odpovídají podmínce.
Pokud dojde ke změně těchto dat (jinou aplikací jiným uživatelem na jiném počítači včetně commitu),
tak při opětovném spuštění SQL dotazu to načte původní data - nevidím změněná data.
Pokud potřebuji opravdu načíst nová data, musím ukončit a opětovně spustit aplikaci.
Je zvláštní, že to někdy funguje bez problémů (normálně to při opětovném spuštění stejného SQL načtě změněná data).
Nesetkal se někdo s něčím podobným?

Stanislav Hruška:
Predpokladám, že to je spôsobené nastavením Transaction.Isolation. Máš tam asi 6 druhov.

rholecek:
Díky za nakopnutí.
Změnil jsem xiReadCommitted na xiDirtyRead a funguje to.
Zaráží mě jen, že to v jedné aplikaci funguje správně a ve druhé se to chová jak chce. Teď už bude stačit přijít na to, jestli za to může aplikace nebo DB server.

Stanislav Hruška:

--- Citace ---Zaráží mě jen, že to v jedné aplikaci funguje správně a ve druhé se to chová jak chce.
--- Konce citace ---
To si nemyslím. Oni tie transakcie na sebe závisia. Ak jedna transakcia nepovolí iným vidieť zmeny, tak ich nevidia.

pf1957:

--- Citace: rholecek  09-02-2017, 14:12:44 ---Díky za nakopnutí.
Změnil jsem xiReadCommitted na xiDirtyRead a funguje to.
Zaráží mě jen, že to v jedné aplikaci funguje správně a ve druhé se to chová jak chce. Teď už bude stačit přijít na to, jestli za to může aplikace nebo DB server.

--- Konce citace ---
Tebe by melo zarazet neco jineho: ze kdyz ti nefunguje xiReadCommited, tak to znamena, ze ta data nemas commited a tudiz tam mas bordel v transakcnim zpracovani. Pouzitim xiDirtyRead v podstate likvidujes izolaci transakci navzajem a hrabes se nekomu jinemu v neukoncene transakci, ktera nakonec muze byt zahozena (odrolovana zpatky). A pro neco takoveho uz musis mit normalne setsakra dobrej duvod...

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi