|
|
|
Проверка бизнес-ограничений после отработки AdapterManager.UpdateAll
|
|||
|---|---|---|---|
|
#18+
Всем привет! :) Использую Adapter Manager для внесения изменений из локального DataSet в SQL Server 2008. Все вроде бы работало,.. до того времени, как не появились бизнес-требования, проверка которых должна выполняться ПОСЛЕ внесения всех изменений (например, сумма столбца для определенных строк = 1). DataAdapter принимает команды, которые работают на уровне строк (у меня - это хранимые процедуры). Поэтому данные правила я проверить в процедурах не могу. Начал изобретать велосипед с решением и транзакционностью и надумал следующее: 1. Переписал метод "родной" Adapter Manager.UpdateAll так, чтобы перед вызовом Commit вызывалась моя процедура, которая выполняет нужные проверки. Что-то такое Код: plaintext 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. Но, в этом случае нельзя безопасно использовать отдельные мои написанные процедуры, т.к. в них проверки нету. Второй вариант - это написать полностью с нуля логику обновления DataSet самому. Т.е. передавать на сервер XML с данными и нужными операциями, дергать нужную процедуру (которая будет одна и вызываться будет один раз), и самому же вручную обрабатывать результат, обновлять DataSet ошибочными данными (мне они нужны, т.к. после обновления происходит подсветка ошибок и соотвествующие сообщения на клиенте). Ребята! Кто что думает? Может, кто-то уже сталкивался с подобной проблемой? Буду раз услышать советы и мнения. СУВ, Kuvaldis ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2011, 20:17 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=37053383&tid=1350935]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
19ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 325ms |

| 0 / 0 |
