Главная страница
    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.51 MB
Время: 0.009 c
6-96921
NewGuest
2002-12-04 22:10
2003.01.30
Работа с сетью в среде Delphi7


1-96782
viper
2003-01-22 15:27
2003.01.30
Как создать мигающую иконку


1-96755
sbz
2003-01-20 14:43
2003.01.30
Переменные


6-96904
serd_hhc
2002-11-26 00:16
2003.01.30
Почему не работает???


3-96618
Viktor1
2003-01-14 05:22
2003.01.30
Какую базу лучше всего использовать на CD?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский