Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Суть. Хранимой процедурой изменяю значение поля Status текущей записи в базе. На событие OnCustomDrawCell повешена процедура раскраски строк в зависимости от значения поля Status. Надо: после изменения значения поля в базе обновить строку в гриде, желательно без получения всех данных из базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2003, 14:52 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Если используются ADO-компоненты, то Query.Refresh; Query.UpdateCursorPos; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2003, 15:27 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Использую ADO, c Refresh'ем работает, но медленно - получаются все данные из базы. Попробовал заменить на Resync, если верить хелпу, то он работает как Refresh, но только обновляет текущую запись, предудущую и следующую записи, однако у меня Resync не заработал - данные в гриде не изменились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2003, 18:55 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Меняй значение поля в RecordSet паралельно с XП, только Post не делай :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2003, 09:37 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
2 golsa Ты бы лучше не предлагал - а то человек и вправду так делать будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2003, 10:02 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Что значит "ХР" и почему этого делать не следует? Извините, если вопросы кажутся глупыми - я еще тот программист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2003, 20:01 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
ХП- Хороший Программист :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2003, 20:46 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
вызов метода requery если dataset.active=true и open если он был закрыт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2003, 15:19 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
попробуй DBGrid . Refresh; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2003, 14:54 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Дык как обновить одну запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 04:12 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Никак ты не обновишь одну запись - обновляй весь датасет. Close; Open; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 10:36 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Могу предложить такой вариант (действует, правда, если кол-во записей в датасете не меняется): в гриде выводятся только те поля, значения которых не изменяются (с помощью Query1), остальные поля на форме размещаются с помощью dbText, которые выводятся через Query2. А потом на событие afterscroll запроса Query1 вешаешь обработку типа Query2.Close; Query2.Parameters.ParamByName('Param).Value:=Query1.FieldByName('KeyField').AsFloat; Query2.Open; в результате dbText'ы будут отражать рельные данные, даже если другой пользователь их уже поменял. А вот что делать, если другой юзер данные добавил или удалил :((, то тут что делать, кроме Close и Open всего датасета, я не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 12:38 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Да вы че, ребята? На копеечную проблему разговоров на рупь развели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 15:14 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Сорри, tygra, но я с тобой не согласен. Проблема действительно большая. Объясню почему: у меня на работе стоят в основном машины с Windows 98 и 16 или 32 метров памяти, с медленными винтами и старыми петюхами, а есть еще и 486 (помнишь были такие?). Так вот делать close/open на таблице даже с 10000 записями и отображать их в гриде, это удовольствие на 1 минуту и больше. Вот и пытаюсь победить эту проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 16:59 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Гнать и отображать на клиенте 10000 записей, это нонсен даже для П4. Че у тебя народ с таким кол-вом записей делать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 17:13 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Да ты с ума сошел? 10000 записей в гриде!!!!!!! Зачем? С вундеркиндами работаешь - они сразу все их видят? И при чем тут 486? Разницы нет - сеть то от процессора не зависит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 17:17 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
to tygra & pkarklin. Честно говоря, начинается треп не связанный не темой, но попробую объяснить. Для программера главный кто? По-моему, юзер с его дурацкими запросами и пожеланиями. И вот у моих юзеров были пожелания: хочу видеть сразу всю базу, я хочу по ней скроллиться и видеть все и сразу. Т.к. автоматизация шла не по плану, а по моей инициативе, пришлось пойти им на встречу (лишь бы на бумаге все эти данные не писали, а потом на калькуляторе не суммировали :((( ). Вот такой, может и не совсем конкретный, ответ. Честно говоря, я тоже не вижу ничего страшного (с точки зрения пользователя) когда я захожу в программу, в окошке вижу сразу все данные, пролистываю их и мне не надо помнить никаких дополнительных данных. И как бы было еще хорошо, если бы я лазю по гриду, а другой юзер в это время что-то обновил, а у меня в гриде эти изменения сразу бы и отобразилось. Логика железная . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 18:21 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
Эта логика идет из времен dbf. А юзеров надо отучать, и начальство тоже. Как? А сказать, что долго будет так - и сделать долго, специально, пусть помучаются. Потому что нет задач, когда нужны все записи - никакой юзер не сможет убедить, если грамотно с ним разговаривать. А так если идти на поводу - клиентская часть будет похожа на неповоротливого монстра :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2003, 19:12 |
|
||
|
Как обновить строку в гриде после изменения данных в базе?
|
|||
|---|---|---|---|
|
#18+
To vladuha: у моих юзеров были пожелания: хочу видеть сразу всю базу, я хочу по ней скроллиться и видеть все и сразу... Ну говорят же тебе - неправильно это. Все данные никогда не нужны пользователю. Предположим, есть у тебя табличка всего-лишь из 1000 строк, каждая строка по 1К. Для того, чтобы клиент всего-лишь увидел их, тебе надо перегнать 1 Мег на клиента, разместить его в памяти. А если там 100000 строк? Посчитай, сколько строк у тебя одновременно можно отобразить в гриде? Скорей всего не больше 50, так нафига тебе качать остальные, когда их можно взять потом, в момент прокрутки? Для этого и настройки есть, сколько строк за один раз фетчить. И как бы было еще хорошо, если бы я лазю по гриду, а другой юзер в это время что-то обновил, а у меня в гриде эти изменения сразу бы и отобразилось. Было у меня такое сделано - при изменении данных клиентам рассылалось сообщение на обновление данных. Но возникли такие проблемы - человек 10 сидят и редактируют документы, по очереди нажимают "сохранить" и у каждого обновляется грид. Т.е. если человек нажал "Сохранить", тут-же (одновременно) от 10 клиентов летят в базу одинаковые запросы. А если клиентов 40-60 ? А если у 20 из них стоят фильтры, и те записи, которые изменены другими юзерами, эти 20 человек вообще не видят (они им не нужны). Ну и курсорчик у них исправно дергается в часики (обновление данных). Потом переделал на таймер и добавил кнопку "Обновить" - когда надо, пусть сами обновляют. Так что делай, как надо, а не так как хотят юзеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2003, 05:53 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=2063&tid=2119054]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 255ms |
| total: | 414ms |

| 0 / 0 |
