|
|
|
ADODataSet и автоматическое обновление
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Ислользую ADODataSet в BCB6. Данные в ADODataSet получаю запросом от Oracle view, который объединяет несколько таблиц: Код: plaintext 1. 2. 3. ADODataSet связан с DBGrib, который занимается отображаением полученных данных. Данные в процессе работы приложения изменяются с помощью вызова хранимых процедур. Хотелось бы, чтобы после изменения данных, модифицированные значения полей, сразу же отображались в DBGrid. Пока что делаю после каждого изменения ADODataSet->Requery(), но такой код IMHO неэффективен :( Может есть решение этой задачи более правильное и изящное, чем переоткрытие всего набора данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 03:14 |
|
||
|
ADODataSet и автоматическое обновление
|
|||
|---|---|---|---|
|
#18+
Что вы все так ADO любите? :) Поищи по форуму (+ по ветке Delphi) сколько раз возникали проблемы при использовании ADO для доступа к Oracle. Не знаю, умеет ли что-нибудь подобное ADO (может Resync, но это не совсем то), но нормальные DataSet'ы умеют делать RefreshRecord - т.е. считывается только обновлённая строчка, а не весь набор заново. В ODAC'e, например, можно задать SQLRefresh (как запрос, так и хранимую процедуру) - получение одной строки по певичному либо другому уникальному ключу. Тогда при вызове RefreshRecord будет перечитываться активная запись набора данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 09:50 |
|
||
|
ADODataSet и автоматическое обновление
|
|||
|---|---|---|---|
|
#18+
Не то что любим ADO, но так остается место для маневра в случаем изменения "движка" БД, можно безболезненно и почти без изменений использовать написанный ранее клиент. По форуму искал включая ветку Delphi - не нашел ничего подходящего. Пробовал использовать свойства ADO соединения: Код: plaintext 1. 2. 3. Но это тоже не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2007, 16:35 |
|
||
|
ADODataSet и автоматическое обновление
|
|||
|---|---|---|---|
|
#18+
сколько бился не нашёл более "работчего" способа обновления DataSet->Close(); DataSet->Open(); ну можно ещё запоминать где пользователь курсор оставлял через Bookmark ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 18:17 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34756448&tid=2028296]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 493ms |

| 0 / 0 |
