транзакция для datasource
От: Peshuha Россия  
Дата: 04.06.15 07:23
Оценка:
Добрый Всем День!!!

На клиенте реализую конечный автомат с использованием транзакциий( в случае неудачи перехода модель из копии не обновляется).
Все хорошо работает.

Проблема всплыла вот где:
Есть грид, к которому привязана таблица. Таблица из dataset. Этот dataset участвует в транзакции.
Если иметь его копию (для выполнения транзакции) и при успехе копировать его долго и грид либо дергается, либо вообще не обновляется (в разных случаях колдовства по разному).
Исходя из этого пришлось для ds копию не создавать. Что ведет к явным неудобствам.

Вопрос 1) Правильно ли связываться с транзакцией (хотя мне оч понравилось). Альтернатива ?
Вопрос 2) Как грамотно решить вопрос с копией ds

Заранее спасибо, Илья
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Re: транзакция для datasource
От: Sharov Россия  
Дата: 04.06.15 15:51
Оценка:
Здравствуйте, Peshuha, Вы писали:

P>Добрый Всем День!!!


P>На клиенте реализую конечный автомат с использованием транзакциий( в случае неудачи перехода модель из копии не обновляется).

P>Все хорошо работает.

P>Проблема всплыла вот где:

P>Есть грид, к которому привязана таблица. Таблица из dataset. Этот dataset участвует в транзакции.
P>Если иметь его копию (для выполнения транзакции) и при успехе копировать его долго и грид либо дергается, либо вообще не обновляется (в разных случаях колдовства по разному).
P>Исходя из этого пришлось для ds копию не создавать. Что ведет к явным неудобствам.

P>Вопрос 1) Правильно ли связываться с транзакцией (хотя мне оч понравилось). Альтернатива ?


Здесь нужно больше информации. Так с ходу не скажешь.

P>Вопрос 2) Как грамотно решить вопрос с копией ds


Вообще говоря, а в чем проблема использовать транзакцию и не заводить никаких копий?
Кодом людям нужно помогать!
Re[2]: транзакция для datasource
От: Peshuha Россия  
Дата: 06.06.15 11:41
Оценка:
Здравствуйте, Sharov, Вы писали:
S>Вообще говоря, а в чем проблема использовать транзакцию и не заводить никаких копий?

Что именно имеется ввиду?
По "транзакцией" я сюда вкладываю (сори если не пояснил раньше) "атомарность" перехода из одного сост в другое.
Например, есть входящий символ, и нуна state1 -> state2 При этом в процессе перехода нужно бывает уточнить у пользователя неск ньюансов.

Вот тут то и приходят на помощь копия модели. Грубо говоря, у нас есть возможность прогирывать событие и если что-то не так, то вернуться в прежнее состояние (есссессно с прежним набором данных)
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Re: транзакция для datasource
От: koodeer  
Дата: 06.06.15 14:15
Оценка: +1
Здравствуйте, Peshuha, Вы писали:

P>Таблица из dataset. Этот dataset участвует в транзакции.

P>Если иметь его копию (для выполнения транзакции) и при успехе копировать его долго

DataSet действительно не поддерживает транзакции, поэтому его копируют и в случае отката транзакции используют копию для восстановления данных. Так сделано, я правильно понял?

Если данных много и датасет копируется долго, то можно попробовать метод GetChanges — копировать не всё, а только изменённые данные. Ведь обычно нет нужды обновлять неизменившиеся данные.
Re[3]: транзакция для datasource
От: TK Лес кывт.рф
Дата: 07.06.15 10:46
Оценка:
Здравствуйте, Peshuha, Вы писали:

P>По "транзакцией" я сюда вкладываю (сори если не пояснил раньше) "атомарность" перехода из одного сост в другое.

P>Например, есть входящий символ, и нуна state1 -> state2 При этом в процессе перехода нужно бывает уточнить у пользователя неск ньюансов.

Если это транзакция в БД то, так лучше не делать.
Посмотрите на шаблон UnitOfWork — привязка грида к DataSet это для совсем простых применений.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.