
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.03.2005, 16:13
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
Всем привет!!! Ставлю на форму ADOConnection1, ADOTable1, DataSource1, DBGrid1. Все это дело настраиваю... Также на форму помещаю три кнопки с 1) ADOConnection1->BeginTrans(); 2) ADOConnection1->CommitTrans(); 3) ADOConnection1->RollbackTrans(); Нажимаю на первую. Изменяю данные в гриде... Нажимаю на третью. Данные в гриде не возвращаются обратно в изначальные значения. Закрываю форму и снова открываю. Теперь только отображаются изначальные данные. Т.е. такое ощущение, что после отката данные откатились, но отображаются все равно старые и их нужно самостоятельно обновить... Но как это сделать??? Благодарю за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2005, 16:18
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
авторТ.е. такое ощущение, что после отката данные откатились, но отображаются все равно старые и их нужно самостоятельно обновить... Но как это сделать??? Обновить компонент ADOTable1. Например, Close; Open; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2005, 16:22
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
А есть ли более мягкий вариант обновления после отката??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2005, 17:45
|
|||
|---|---|---|---|
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
StasX4 Т.е. такое ощущение, что после отката данные откатились, но отображаются все равно старые и их нужно самостоятельно обновить... Но как это сделать??? Надо заново перечитать все данные. причем кстати как в случае отката транзакции, так и в случае коммита. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2005, 18:13
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
Понятно. А кроме жесткого способа Close->Open есть ли еще какой-нибудь вариант? Типа Refresh() или что-то в этом роде... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2005, 21:55
|
|||
|---|---|---|---|
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
Это все сильно зависит от способа доступа и драйверов. Но все перечитать - самое мудрое и правильное, и единственно действенное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2005, 22:48
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
Вроде бы нашел ответ при использовании TDBGridEh. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. @MasterZiv Поэкспериментировал, и вот не понимаю зачем нужен Requery() при выполнении CommitTrans()? И что лучше использовать Requery() или Refresh() ? Как я понял, при использовании Close->Open мой вариант не пройдет. И чем отличается Close->Open от Requery() или Refresh()? Заранее спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2005, 18:44
|
|||
|---|---|---|---|
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
StasX4 Поэкспериментировал, и вот не понимаю зачем нужен Requery() при выполнении CommitTrans()? В смысле, ты понимаешь, зачем он при RollBack, а зачем - при Commit - не понимаешь ? Если ты подумаешь, то поймешь, что на самом деле, ситуации с RollBack и с Commit мало чем отличаются - и в том и в другом случае ты что-то послал на сервер, и там что-то поменялось. А что, и как - ты никогда не знаешь. StasX4 И что лучше использовать Requery() или Refresh() ? Как я понял, при использовании Close->Open мой вариант не пройдет. И чем отличается Close->Open от Requery() или Refresh()? А я почем знаю ? Это ты в своих дельфях вызнавай. На сколько я помню это г., там Close - Open - это действия по полному повторению получения данных на клиента, т.е. то же самое, что ты сделал бы, если бы закрыл приложение (форму) и открыл бы заново. Именно это и надо делать для обновления данных (за очень редким исключением). Requery() или Refresh() - видимо, как водится в Дельфах, хитрые попытки сделать хитроумным способом то, чего сделать вообще нельзя - обновить только те строки, которые у тебя закачены на клиента. Это может быть сильно завязано на конкретику данной СУБД (а другая СУБД такого вообще не сможет), либо на способ доступа к данным (всяческие хитрые курсоры и пр.). Точнее я не знаю. Да, еще - никогда не используй TTable. Если используешь - меняй быстрее на TQuery или TProcedure, пока не началось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2005, 19:59
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
@MasterZiv Спасибо за ответ. ;) А чем плоха TTable? Глюков немерено? А в TADOTable теже глюки или что? P.S. Я пишу на BCB6 SP4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2005, 20:21
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
авторСпасибо за ответ. ;) А чем плоха TTable? Глюков немерено? А в TADOTable теже глюки или что? Тем, что в любом случае пригонит все данные из таблицы на клиента. Он Вам надо, тащить, к примеру, 100000 записей на клиента? Пользователь в них точно ногу сломит, да еще и будет каждый раз вспоминать программера за его "очень шуструю" программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2005, 20:22
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
а еще, а еще!!!! а еще бывает, когда выдаешь коммит, а на самом деле происходит роллбак. например, когда один из участников транзакции не доступен. это так здорово!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2005, 20:25
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
qа еще, а еще!!!! а еще бывает, когда выдаешь коммит, а на самом деле происходит роллбак. например, когда один из участников транзакции не доступен. это так здорово!!! Ась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.03.2005, 12:07
|
|||
|---|---|---|---|
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
Гавриленко Сергей Алексеевич qа еще, а еще!!!! а еще бывает, когда выдаешь коммит, а на самом деле происходит роллбак. например, когда один из участников транзакции не доступен. это так здорово!!! Ась? Ну чё ась, пральна человек говорит (про рапределенные транзакции). То, что ты commit послал, еще не значит, что он произойдет. А если не произойдет commit, то должен произойти , наоборот, rollback, ибо - транзакция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.03.2005, 12:13
|
|||
|---|---|---|---|
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
StasX4 А чем плоха TTable? Глюков немерено? Тем же, чем и вся VCL - попыткой сделать то, чего сделать в принципе нельзя. Умная она слишком, все за тебя пытается сделать (запросы генерировать). А запросы надо писать самому, иначе будешь у нее в заложниках. Впрочем, наверное , есть случаи , когда TTable вполне должен подходить - напр. для работы с DBF-таблицей. StasX4 А в TADOTable теже глюки или что? Я не знаю. Подозреваю, что TADOTable - это та же TTable, только использующая не BDE, а ADO. Тогда - да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.03.2005, 17:24
|
|||
|---|---|---|---|
|
|||
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
А что если я через TADOTable вывожу не таблицу с сервака, а представление(View)? Неужели тоже делать и с TADOQuery? Т.е. получается что сервак будет обрабатывать два вложенных запроса. Первый-> Это View Второй-> Скажем, элементарный select * from MyTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.03.2005, 11:55
|
|||
|---|---|---|---|
Проблема с отображением данных после отката транзакции. |
|||
|
#18+
StasX4 Т.е. получается что сервак будет обрабатывать два вложенных запроса. Серваку это пофигу. View - это некий запрос, который как запрос подставляется в главный запрос, грубо говоря, в виде текста ( на самом деле, в виде лог. действий, которые надо сделать). Затем это все оптимизируется и выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2033536]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 391ms |

| 0 / 0 |
