![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
TTT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2007 Репутация: нет Всего: 1 |
Всем привет.
Пишу тул для работы с БД. ExtJS Grid + Perl. С таблицей могут работать несколько юзеров. Соответственно есть вероятность "одновременного" изменения ячеек (читай полей таблицы в БД). Блокировки не подходят. Решил передавать контр. суммы к каждой ячейке. Объем данных возрастает, но другого решения пока нет. Сейчас думаю в Grid добавить скрытое поле "fieldname_md5". Не уверен, что это правильный путь. Народ, поделитесь мыслями, как бы вы сделали? Или может есть такая возможность в самой ExtJS? |
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: 5 Всего: 71 |
Как я понял ты используешь для редактирования Ext.grid.EditorGridPanel
По этому есть предложение использовать Ext.grid.GridPanel + Ext.form.FormPanel Плюс будет в том что при попытке изменить данные записи информацию ты можешь заново запросить из БД те она будет актуальна. А для отображения актуальной информации в Ext.grid.GridPanel можно периодически обновлять информацию -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
TTT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2007 Репутация: нет Всего: 1 |
Это не поможет, потому что данные в момент чтения перед изменением могут быть уже изменены другим юзером. Для правильной проверки на изменение нужно знать считанное значение "А" и новое значение "В". В момент апдейта ячейки нужно заново считать значение "А+", сравнить с "А", и если они равны то писать в ячейку "В". Если не равны, выдать сообщение "Некоторые данные сохранить не удалось. Нажмите ОБНОВИТЬ и попробуйте снова". Т.е. приходится передавать в ExtJS контр. сумму "А" (исп MD5) и сами данные.
|
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: 5 Всего: 71 |
Перед открытием формы редактирования нужно просто запросить данные редактируемой записи из БД -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
TTT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2007 Репутация: нет Всего: 1 |
Идея хорошая. Нужно подумать над ней. Но все равно эта идея не исключает коллизии. Если юзер будет долго думать над формой, данные могут измениться. В моем случае я вынужден ожидать такую ситуацию.
|
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: 5 Всего: 71 |
Хранишь для каждой записи значение Даты последнего изменения если при отправке на сохранении даты которая была получена при создании формы не совпадает с датой которая в момент сохранения находится выводишь пользователю сообщение о том что данные были изменены
-------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
TTT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2007 Репутация: нет Всего: 1 |
Спасибо за идею. На выходных попробую переварить.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |