Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.53 MB
Время: 0.025 c
1-96696
Jurij_ch
2003-01-22 00:54
2003.01.30
Стёрт *.pas файл, однако остались *.dfm, *.dfn и *.dcu


6-96939
LORD
2002-11-28 22:04
2003.01.30
сервер для компонента NMSTRM.


3-96593
Andy Eremin
2003-01-13 13:46
2003.01.30
fkCalculated


1-96723
asafr
2003-01-21 16:36
2003.01.30
COM сервер MICROSOFT OFICE.....


14-97012
blackman
2003-01-13 16:41
2003.01.30
Интересно, это в честь дня рождения ?