| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Применение библиотек > ExtJS Grid + контрольная сумма данных в ячейке |
| Автор: TTT 23.6.2010, 13:08 |
| Всем привет. Пишу тул для работы с БД. ExtJS Grid + Perl. С таблицей могут работать несколько юзеров. Соответственно есть вероятность "одновременного" изменения ячеек (читай полей таблицы в БД). Блокировки не подходят. Решил передавать контр. суммы к каждой ячейке. Объем данных возрастает, но другого решения пока нет. Сейчас думаю в Grid добавить скрытое поле "fieldname_md5". Не уверен, что это правильный путь. Народ, поделитесь мыслями, как бы вы сделали? Или может есть такая возможность в самой ExtJS? |
| Автор: comtat 25.6.2010, 08:30 |
| Как я понял ты используешь для редактирования Ext.grid.EditorGridPanel По этому есть предложение использовать Ext.grid.GridPanel + Ext.form.FormPanel Плюс будет в том что при попытке изменить данные записи информацию ты можешь заново запросить из БД те она будет актуальна. А для отображения актуальной информации в Ext.grid.GridPanel можно периодически обновлять информацию |
| Автор: TTT 25.6.2010, 13:09 |
| Это не поможет, потому что данные в момент чтения перед изменением могут быть уже изменены другим юзером. Для правильной проверки на изменение нужно знать считанное значение "А" и новое значение "В". В момент апдейта ячейки нужно заново считать значение "А+", сравнить с "А", и если они равны то писать в ячейку "В". Если не равны, выдать сообщение "Некоторые данные сохранить не удалось. Нажмите ОБНОВИТЬ и попробуйте снова". Т.е. приходится передавать в ExtJS контр. сумму "А" (исп MD5) и сами данные. |
| Автор: TTT 25.6.2010, 15:04 |
| Идея хорошая. Нужно подумать над ней. Но все равно эта идея не исключает коллизии. Если юзер будет долго думать над формой, данные могут измениться. В моем случае я вынужден ожидать такую ситуацию. |
| Автор: comtat 25.6.2010, 16:24 |
| Хранишь для каждой записи значение Даты последнего изменения если при отправке на сохранении даты которая была получена при создании формы не совпадает с датой которая в момент сохранения находится выводишь пользователю сообщение о том что данные были изменены |
| Автор: TTT 25.6.2010, 16:35 |
| Спасибо за идею. На выходных попробую переварить. |