Текущий архив: 2003.01.30;
Скачать: CL | DM;
ВнизDBGrid и StringGrid Найти похожие ветки
← →
mate (2003-01-14 10:03) [0]Как быстро можно перекидать данные из BdGrid пулученные по запросу Query в соответствующие ячейки StringGrid.
← →
Max Zyuzin (2003-01-14 10:23) [1]ИМХО изобратать ничего не надо... данные надо брать не из DBGrid а из Query по нему и бегать...
← →
mate (2003-01-14 10:25) [2]мне надо быстро их перекидать , а Query.Next когда записей >10000 это долго.
← →
Наталия (2003-01-14 10:26) [3]А для чего в DBGrid выводить 10000 записей? И затем их перекидывать в StringGrid? Правда, интересно, какая задача решается таким путём?
← →
Sergey13 (2003-01-14 11:03) [4]2Наталия © (14.01.03 10:26)
Наверное задача перекидывания. 8-) Типа: бери больше - кидай дальше.
← →
mate (2003-01-14 11:45) [5]Потому что я не могу кликнув мышкой в ячейку DBGrid бысто поменять (0,01 сек) её содержимое, а в StringGrid могу.
← →
still (2003-01-14 11:47) [6]Тогда dbgrid вообще не нужен!
Только query.
← →
Max Zyuzin (2003-01-14 11:48) [7]Так тебе наверное еще понадобится потом назад все это безобразие перекидывать??? Вот это точно будет неторопливая операция...
← →
Sergey13 (2003-01-14 11:49) [8]2mate © (14.01.03 11:45)
А за 0.02 секунды ты поменяешь 2 ячейки? 8-)
А если серьезно. Зачем тебе тогда вообще DBGrid? Работай сразу со StringFrid. Кидай в нее из Query и работай.
← →
mate (2003-01-14 11:54) [9]Sergey13 ©
Тогда как мне быстро перекидать записи из Qyery в StringGrid (не дольше 20 сек - 10000 записей). При этом Query.Next или Query.FindNext с StrinGrid.Cells[]:=Query.FieldByName().Value ну очень долго.
← →
Наталия (2003-01-14 11:57) [10]А зачем тебе на скорость это делать?
Параметры запуска баллистических ракет?
Обгоняешь что-ли кого-то? :) А если не успеешь за 20 сек - то что? Зачем вообще нужно визуализировать 10000 записей? Пользователь всё равно не сможет с ними работать. Тем более за 0,01 сек. :0)
← →
Sergey13 (2003-01-14 11:57) [11]2mate © (14.01.03 11:54)
А ты определись - нужно юзеру ОДНОВРЕМЕННО видеть >10000 записей или нет? И многое станет ясно. Запросы то ведь можно (и нужно!!!) конкретизировать.
← →
mate (2003-01-14 12:00) [12]Sergey13 ©
10000- это как раз и есть конкретизированный запрос.
Так что мне делать.?
← →
mate (2003-01-14 12:04) [13]Наталия ©
Через 20 сек срабатывает сигнализация и высылается группа захвата.
А если серьёзно просто надо.
← →
Max Zyuzin (2003-01-14 12:04) [14]Ответь плиз на мой вопрос - тебе изменения надо назад сохранять или нет?... К тому же думаю не сможет кликать мышью и изменять данные с частотой 100 Гц
← →
BorisUK (2003-01-14 12:10) [15]Отображай на экран только часть данных...
Сделай кнопку далее>> (или по событию скролинга)
По ней подбавляй следующую часть.
и так далее.
Процедура перелопачивания данных из Query в SG будет работать выдавая данные по-частям, по доп запросу.
← →
mate (2003-01-14 12:11) [16]Max Zyuzin ©
Изменения мне сохраниять только те которые были рельно изменены. И там нет ограничений по времени. т.е. если user ничего не менял то ничего и не сохраняется.
А частота 100 Гц - это уже проблема операторов, они деньги за это получают.
← →
Наталия (2003-01-14 12:22) [17]Уууу! Как всё запущенно! Какой-то у тебя всё-таки в корне неверный подход к обработке данных, имхо. Если это такая критичная система реального времени, то, судя по твоим вопросам, группа захвата чаще всего будет приезжать к тебе...
← →
AM (2003-01-14 12:22) [18]>>Изменения мне сохраниять только те которые были рельно
>>изменены. И там нет ограничений по времени. т.е. если user
>>ничего не менял то ничего и не сохраняется.
Я так понял, что изменения будут заносится в БД в конце сеанса работы пользователя(?)Тогда думаю что это будет очень долго, так как тебе предется следить где и как были произведены изменения и производить их поочереди. А если их будет более 9000 ?
А если посуществу, то в данном случае, если DBGrid тебе не подходит и все его предки тоже, то тогда надо писать свой копонент. Перевод в StringGrid - это не лучшее решение, так как встоет задача обеспечения обратного процесса.
← →
mate (2003-01-14 12:30) [19]Мне главное быстро перекидать данные, а сохранять их хоть 9999 и хоть N часов. Главное их получить.
Дайте же хоть кто-нибудь ответ на этот вопрос, плиззззззззз.
← →
mate (2003-01-14 12:45) [20]а в ответ тишина...................
← →
gek (2003-01-14 12:48) [21]Честно говоря,я так и не понял зачем данные перекидывать?
← →
stone (2003-01-14 12:52) [22]2 mate ©
То, что ты хочешь, быстро не получиться.
← →
dimis (2003-01-14 12:55) [23]>>mate © бsстро перекинуть не получится
надо искать дргой путь
что мешает редактировать в DBGride?
← →
mate (2003-01-14 12:55) [24]gek ©
Потому что я не могу кликнув мышкой в ячейку DBGrid бысто поменять (0,01 сек) её содержимое, а в StringGrid могу.
т.к. данные в DBGrid из Query и мне для изменения данных надо писать SQL запрос и обновлять Qiery.
Теперь понятно...?
← →
AM (2003-01-14 12:57) [25]Можно сделать так как сказано в
>> BorisUK © (14.01.03 12:10)
Но только чуть-чуть подругому
запонять из полного (в 10000 записей) Query в StrinGrid по частям, на сколько видно пользователю, потом по мере скролинга запонять оставшуюся часть(в любом случае надо будет по строчке, по очереди... ), и так до конца, т .е. не надо дополнительных запросов к БД. По крайней мере из стандартных компонентов - это один подходящих для тебя я думаю...
но тут втоет вопрос если пользователь сразу захочет пойти на самый конец набора данных ... тогда начнутся тормоза...
В принципе если подождать годика два, когда выйдет
Pentium-5 5000MHz - то все это будет очень быстро работать :))
← →
dimis (2003-01-14 12:57) [26]mate ©
не зачем перекидывать данные из обного места в другое
Используй TUpdateSQL
← →
stone (2003-01-14 13:01) [27]
> Потому что я не могу кликнув мышкой в ячейку DBGrid бысто
> поменять (0,01 сек) её содержимое, а в StringGrid могу
TDBGrid и TStringGrid наследуются от TCustomGrid и редактирование ячеек там одинаково. Кроме того я сомневаюсь, что ты сможешь вручную поменять значение за 0,01 сек где угодно.
> данные в DBGrid из Query и мне для изменения данных надо
> писать SQL запрос и обновлять Qiery.
Достаточно у Query установить свойство RequestLive=True и ничего писать и переоткрывать не надо
> Теперь понятно...?
Мне лично не понятно
← →
dimis (2003-01-14 13:02) [28]или используй TClientDataSet
← →
gek (2003-01-14 13:17) [29]В принципе можно делать как сказал stone © (14.01.03 13:01)
единственное это для сложных запросов работать не будет
Страницы: 1 вся ветка
Текущий архив: 2003.01.30;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.009 c