|
Тема |
Re: Интересно ... [re: salle] |
|
Автор | Йopдaн (Нерегистриран) | |
Публикувано | 01.12.05 23:04 |
|
|
Благодаря за вниманието, жалко, че никой друг не се включва напоследък.
В момента имам следния проблем, който обмислям и нямам решение още:
Конкуренто редактиране на ред от таблица.
Sql сървър + клиентска програна (exe), приемам че друг няма достъп за запис в тази база.
В една колона, мисля да записвам 0 или CONNECTION_ID(). Ако има 0 значи реда е достъпен за редакция, иначе съответната сесия е "заключила" този ред. При започване на редакция, ако в тази колона има 0 записвам CONNECTION_ID(), при завършване update на реда и записвам 0. Проблема е когато клиента забие, прекъсне му мрежата или нещо подобно, и не запише 0 за да освободи реда. Трябва да се проверява дали стойноста е активен процес (connection).
Естествено, като обмислих нещата, show processlist не може да се включва в транзакции, защото няма нищо общо с таблиците, а със съвсем други събития. От друга страна, в моя случай, нещата зависят от няколко потребителски дейтвия (забива, влиза пак, заключва ред), така че спокойно мага да направя 2 заявки, които винаги ще са по-бързи от нещо, което се прави от потребителя.
Следя този форум от около половин година и имаше подобни въпроси, но не си спомням за добро решение.
|
| |
|
|
|