ugrás a tartalomhoz

MSSQL permanens row lock PHP-ből

tisch.david · 2009. Jan. 26. (H), 00.36
Sziasztok!

Az alábbi témában kérném a segítségeteket:
Ugyanazon felhasználó konkurens kéréseinek megregulázása miatt row lockot szeretnék tenni a SESSION tábla releváns sorára. Szeretném, ha ez a lock a kérés kiszolgálásának kezdetekor létrejönne, és csak a kiszolgálás végeztével szűnne meg.

Mivel a lock csak egy tranzakción belül él, a kérés kiszolgálását egy "csomagoló" tranzakcióban szeretném végezni. Ha azonban az indított tranzakciót a kiszolgálás során futtatandó első query-vel nem véglegesítem vagy nem dobom el, akkor 266-os hibát kapok:
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing.

Van valami ötletetek, hogy mit lehetne ezzel kezdeni?

A tanácsokat előre is köszönöm! Üdv:

Dávid
 
1

Probléma megoldva

tisch.david · 2009. Jan. 26. (H), 12.29
Sziasztok!

Hátha másnak egyszer még segít...
A hiba oka az volt, hogy az ADOdb minden query-t EXECUTE()-ban futtat. Ezért a csomagoló tranzakciót az mssql_query() függvénnyel indítottam és zártam le, így a hiba megszűnt, a row lock pedig az egész session kezelés alatt fennáll. Konkurens kérés esetén a második vár a sorára (viszont mivel nincsen minden tranzakció sorba rendezve, így feleslegesen nem lassú a kiszolgálás).

Köszi mindenkinek, aki gondolkozott rajta! Üdv:

Dávid