|
|
|
update only modified fields
|
|||
|---|---|---|---|
|
#18+
Есть таблица мастер и несколько деталей со связями один-к-одному. Хочу редактировать несколько таблиц через один FIBPlus DataSet (работа через грид - требование клиента). Причем, важно чтобы запрос изменял только измененные поля, так как, одни и те же записи (но разные поля) часто меняются с разных клиентов. Если в execute block написать "обычные" update-ы для нескольких таблиц, то в update посылаются измененные и (что важно) кешированные значение клиентом. Кешированные данные могут быть устаревшими по отношению к изменениям других клиентов и могут затирать их изменения. Поэтому необходимо "update only modified fields". Изменять исходники FIB-ов не целесообразно, поскольку в execute block могут быть дополнительные условия для обновлений тех или иных таблиц деталей. Сейчас остановился на такой схеме: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. Эта штука работает, но хотелось бы узнать - насколько это плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2014, 19:00:39 |
|
||
|
update only modified fields
|
|||
|---|---|---|---|
|
#18+
Gorynichхотелось бы узнать - насколько это плохо? Нинасколько. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2014, 19:06:59 |
|
||
|
update only modified fields
|
|||
|---|---|---|---|
|
#18+
Также как вариант, в BeforeEdit/BeforeInsert, сохранять прочитанные значения в структуру, как строка в БД в BeforePost провярять, что редактировали и генерировать UpdateSQL динамически циклом Так же можно ( если уместно) посылать только изменения, примерно update table1 set Kol = Kol + :Difference Разница с твоим примером - в одном случае работа делается на клиенте, в другом на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 21:40:17 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=99&tid=1563751]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
297ms |
get topic data: |
23ms |
get forum data: |
3ms |
get page messages: |
93ms |
get tp. blocked users: |
1ms |
| others: | 264ms |
| total: | 703ms |

| 0 / 0 |
