![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обновить данные в таблице компонента TADOQuery?
jeka_t © (2005-09-02 16:12:00)Есть база, которая лежит на сервере в папочке...
Первая программа-клиент на одном компе открывает таблицу (TADOQuery): Select * from Table (Поставщик: MS Jet 4.0)
И вторая программа-клиент открывает ту же таблицу...
Пользователь первой программы удаляет запись в открытой таблице:
Delete from Table where name = 'Вася'
У второго пользователя данные не изменились пока не переоткрыть таблицу сново методами TADOQuery.Close; TADOQuery.Open;
Вопрос: может есть какой нибудь другой метод, который не будет сново открывать таблицу, а лишь обновит "Курсор данных"?
TADOQuery.Refresh; не работает...
Свойство CursorType в динамическом режиме поставщиком не поддерживается...
Anatoly Podgoretsky (2005-09-02 19:25:00) [1]Если бы только висеть, но еще и все будет прыгать
Desdechado (2005-09-02 19:02:00) [2]потому что они только и будут крики друг друга обрабатывать, а остальное будет дружно висеть
jeka_t (2005-09-02 17:19:00) [3]Почему же?
Alexandr (2005-09-02 17:09:00) [4]а на самом деле, надо сто раз подумать, надо ли такую фичу.
А потом посмотреть в сторону передачи сообщений между программами в сети и работой с буфером датасета напрямую. Но геморрой это еще тот...
Типа одна программа удалила запись и крикнула в сеть " я запись "вася" удалила.
Другие все программы услышали крик и в буфере эту запись стерли.
Но вот делать такое в реальной работе, я бы и врагу не посоветовал.
Alexandr (2005-09-02 17:04:00) [5]один из выходов находится всегда там же где и вход.
jeka_t (2005-09-02 17:03:00) [6]Выхода нет...
Alexandr (2005-09-02 16:44:00) [7]не работай с большими массивами данных, которые долго обновляются.
jeka_t (2005-09-02 16:42:00) [8]Значит нет других путей лишь открывать его сново?
Desdechado (2005-09-02 16:25:00) [9]обновить курсор == переоткрыть запрос
если смущает скорость, не забывай WHERE в SELECT'е делать