Обновление данных в datagrid
От: Аноним  
Дата: 05.03.03 12:48
Оценка:
Пусть есть сервер с данными. Несколько пользователей одновременно работают с этими данными в приложениях основанных на WINFORMS. Каждый пользователь меняет данные при помощи datagrid. Как правильно реализовать обновленние данных у других пользователей, не читая заново всю таблицу с сервера. (Метод Fill у OleDbDataAdaptera читает заново все строки хотя в описании написано что он может делать Refresh) ???
Re: Re: Обновление данных в datagrid
От: TK Лес кывт.рф
Дата: 05.03.03 12:55
Оценка:
Hello
> Пусть есть сервер с данными. Несколько пользователей одновременно работают с этими данными в приложениях основанных на WINFORMS. Каждый пользователь меняет данные при помощи datagrid. Как правильно реализовать обновленние данных у других пользователей, не читая заново всю таблицу с сервера. (Метод Fill у OleDbDataAdaptera читает заново все строки хотя в описании написано что он может делать Refresh) ???

В данном случае основная задача получить из базы данных набор измененных данных.
После этого можно будет использовать метод Fill (он будет производить объединение записей с совпадающим PK)
Posted via RSDN NNTP Server 1.4.6 beta
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Re: Обновление данных в datagrid
От: Аноним  
Дата: 05.03.03 12:58
Оценка:
Здравствуйте, TK, Вы писали:

TK>Hello

>> Пусть есть сервер с данными. Несколько пользователей одновременно работают с этими данными в приложениях основанных на WINFORMS. Каждый пользователь меняет данные при помощи datagrid. Как правильно реализовать обновленние данных у других пользователей, не читая заново всю таблицу с сервера. (Метод Fill у OleDbDataAdaptera читает заново все строки хотя в описании написано что он может делать Refresh) ???

TK>В данном случае основная задача получить из базы данных набор измененных данных.

TK>После этого можно будет использовать метод Fill (он будет производить объединение записей с совпадающим PK)

А как получить из БД этот набор (хотя бы примерно). Он будет уникальным для каждого пользователя?
Re: Обновление данных в datagrid
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.03.03 13:09
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Пусть есть сервер с данными. Несколько пользователей одновременно работают с этими данными в приложениях основанных на WINFORMS. Каждый пользователь меняет данные при помощи datagrid. Как правильно реализовать обновленние данных у других пользователей, не читая заново всю таблицу с сервера. (Метод Fill у OleDbDataAdaptera читает заново все строки хотя в описании написано что он может делать Refresh) ???


Видимо тебе нужен сервер приложений с кешированием.
... << RSDN@Home 1.0 beta 6a (developer build)>>
AVK Blog
Re[3]: Re[4]: Обновление данных в datagrid
От: TK Лес кывт.рф
Дата: 05.03.03 13:33
Оценка:
Hello
>
> TK>В данном случае основная задача получить из базы данных набор измененных данных.
> TK>После этого можно будет использовать метод Fill (он будет производить объединение записей с совпадающим PK)
>
> А как получить из БД этот набор (хотя бы примерно). Он будет уникальным для каждого пользователя?

Естественно, что для каждого пользователя он будет уникальным.
Один из самых простых вариантов — это добавить в таблицу данных поле "время последнего обновления записи".
При этом каждый клиент запоминает время на которое хранится информация в его DataSet и переодически опрашивает
БД на предмет изменений.
Posted via RSDN NNTP Server 1.4.6 beta
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Re[4]: Обновление данных в datagrid
От: Аноним  
Дата: 05.03.03 13:45
Оценка:
Здравствуйте, TK, Вы писали:

TK>Hello

>>
>> TK>В данном случае основная задача получить из базы данных набор измененных данных.
>> TK>После этого можно будет использовать метод Fill (он будет производить объединение записей с совпадающим PK)
>>
>> А как получить из БД этот набор (хотя бы примерно). Он будет уникальным для каждого пользователя?

TK>Естественно, что для каждого пользователя он будет уникальным.

TK>Один из самых простых вариантов — это добавить в таблицу данных поле "время последнего обновления записи".
TK>При этом каждый клиент запоминает время на которое хранится информация в его DataSet и переодически опрашивает
TK>БД на предмет изменений.

Как это сделать теоретически я представляю. Меня больше интересует нет ли чего-то встроенного в Datasete или DataAdaptere для этих целей.
Re[5]: Re[9]: Обновление данных в datagrid
От: TK Лес кывт.рф
Дата: 05.03.03 13:49
Оценка:
> TK>Естественно, что для каждого пользователя он будет уникальным.
> TK>Один из самых простых вариантов — это добавить в таблицу данных поле "время последнего обновления записи".
> TK>При этом каждый клиент запоминает время на которое хранится информация в его DataSet и переодически опрашивает
> TK>БД на предмет изменений.
>
> Как это сделать теоретически я представляю. Меня больше интересует нет ли чего-то встроенного в Datasete или DataAdaptere для этих целей.

Нет. Можно только перечитывать все данные целиком
Posted via RSDN NNTP Server 1.4.6 beta
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[5]: Re[4]: Обновление данных в datagrid
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.03.03 13:52
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Как это сделать теоретически я представляю. Меня больше интересует нет ли чего-то встроенного в Datasete или DataAdaptere для этих целей.


Ну если только DataSet.Merge
... << RSDN@Home 1.0 beta 6a (developer build)>>
AVK Blog
Re[6]: Re[4]: Обновление данных в datagrid
От: Аноним  
Дата: 05.03.03 13:58
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, <Аноним>, Вы писали:


А>>Как это сделать теоретически я представляю. Меня больше интересует нет ли чего-то встроенного в Datasete или DataAdaptere для этих целей.


AVK>Ну если только DataSet.Merge


Жаль, Жаль (( вроде это стандартная проблема для приложений Клиент-Сервер
Re[7]: Re[4]: Обновление данных в datagrid
От: BlackTiger Латвия  
Дата: 05.03.03 16:44
Оценка:
А>Жаль, Жаль (( вроде это стандартная проблема для приложений Клиент-Сервер
При Клиент-Сервер эта проблема НАДУМАНА разработчиками.

Кстати, за это некоторые сильно ругают такой подход, как в .NET так и в dbExpress.
А с другой стороны, не вижу реальных проблем (IMHO).

Дело в том, что конечному пользователю НА-ПЛЕ-ВАТЬ на динамическое обновление данных.
А постоянное изменение данных на глазах пользователя может вызвать раздраженение.

Как правило, обновление (одной записи) делается (если очень нужно) при перемежении по записям, используя уникальный ключ. А обновление всего — только по запросу пользователя.

Команда 1: "UPDATE Table ..."
И сразу команда 2: "SELECT * FROM Table WHERE KeyField= ..."

Вообще эту проблему можно решить просто логикой. Грубо — есть статичные таблицы, данные в которых обновляются сравнительно редко, а чаще всего происходит простая выборка. А есть динамические (рабочие) таблицы.
Рабочие таблицы можно организовать как временные (для каждого пользователя) или как "разделенные" по определенному признаку (пример из бухгалтерии — таблица "Журнал", поле "Тип Журнала", которое содержит "Журнал Документов 1", "Журнал Документов 2" и тыды, а каждый пользователь работает в своем журнале).
При этом пользователь работает только в своей области. При завершении работы пользователь запускает "регистрацию", в процессе которой данные переносятся из "рабочей" таблицы в статическую.
Real programmers don't comment their code.
If it was hard to write, it should be hard to understand.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.