[python] sqlite3 a problém s updaty (zámek?)

petr.dana na gmail.com petr.dana na gmail.com
Pátek Březen 31 13:26:18 CEST 2017


Zdravím vespolek, už dost dlouho řeším marně jeden problém. Přepošlu
popis z fóra, kde jsem se už ptal:

-----
Jedná se o cgi skript, mimo jiné tam jsou dvě funkce, view a edit.
Při zobrazení stránky na webu se volá view, které spouští update,
který nastaví null hodnoty ve dvou sloupcích pro příznak uzamčení
záznamu, načte se záznam, zobrazí se a skript končí.
Pak má uživatel možnost spustit editaci. V tom případě se volá funkce
edit, která kontroluje zámek záznamu, v případě že není zamčený,
provede se ten inkriminovaný update, který má zámek zapsat, pak se
zobrazí formulář pro editaci a skript končí. Funkce view se vůbec
nevolá, takže ten update, který zámky nuluje, se nespouští
(kontrolováno ladícími výpisy přímo ve funkci, která zastřešuje
updaty).
Z toho mi vyplývá, že ten sqlite musí nějak záhadně cachovat předchozí
úpravy prostě spustit ten předchozí, ale až po tom inkriminovaném.
Přitom po každém updatu se provede commit, tak nevím, co to vyvádí.
-----


Zatím jsem žádné řešení nenašel, jediné, co jeden člověk psal bylo:

-----
Je lepší ten null držet jinde než ve sloupci, protože sqlite drží
database write lock...takže mít někde semafor.
-----

Tak to jsem mimo, koukal jsem do dokumentace na ty zámky a sdílení,
ale moc moudrý z toho nejsem. Nevíte někdo, jak ten problém vyřešit?
Jinak jsem to ještě zkoušel s informixem, ale bylo to to samé.



Další informace o konferenci Python