ugrás a tartalomhoz

ADODB - tranzakció kezelés - dirty read

DarkHcK · 2013. Május. 7. (K), 12.11
Sziasztok!

Belefutottam egy érdekes problémába, s egyenlőre sehol sem találtam rá megoldást.

ADODB -ben ha egy tranzakció kellős közepén csinálok egy select -et egy olyan táblán, amibe a tranzakció fog majd írni, akkor "dirty" rekordok is belekerülnek az eredményhalmazba.

Próbáltam tranzakció módot állítani READ COMMITTED -re, de semmi változás.

Találkozott ezzel már valaki? Van esetleg valakinek valami ötlete, hogy ez miért van?

Üdv,
DarkHcK
 
1

Milyen DB?

janoszen · 2013. Május. 7. (K), 16.41
Egesz pontosan milyen DB motorral probalkozol? MySQL?
2

re: Milyen DB?

DarkHcK · 2013. Május. 8. (Sze), 14.22
MySQL - InnoDB
4

Isolation level

janoszen · 2013. Május. 8. (Sze), 14.47
Anno egy Perconas ismerosom mondta, hogy nem akarsz izolacios szintet valtoztatni MySQL-en, mert csak a defaulton tesztelik kiadosan a rendszert.

Ami a kerdest illeti, tgr kollega leirasa a helytallo, amig benne vagy egy tranzakcioban, addig az adott kapcson nem tudsz azon tranzakcion "kivul" olvasni, uj kapcsolatot kell nyitnod. Vagy at kell szervezned a kododat.
3

Pont ez a lényege a

tgr · 2013. Május. 8. (Sze), 14.33
Pont ez a lényege a tranzakciónak: amíg benne vagy, látod a saját módosításaidat, de aki a tranzakción kívül van, nem látja. A READ COMMITTED csak azt jelenti, hogy más tranzakciók módosításait nem látod.

Ha tényleg szükséged van egy tranzakció közepén az eredeti adatokra (kicsit code smell-gyanús), nyithatsz egy új adatbáziskapcsolatot a selectnek.