![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подкачка данных [D6, MSSQL]
Роман Антонов © (2003-02-20 13:29:00)MS SQL Server 2000, Delphi 6. Связь с базой данных
через ADO (MS OLE DB Provider for MS SQL Server).
Выполняется SELECT (TADOQuery) к таблицам.
Данные отображаются в DBGrid"е. Если SELECT возвращает очень
большое количество записей, то DBGrid получает фокус только тогда,
когда закачиваются все записи. А мне необходимо начать работу
с DBGrid"ом сразу же (просмотр первых закаченных записей и т.д.) и получать
количество закаченных записей (как в Enterprise Manager).
Пожалуйста, помогите!
jocko (2003-02-28 13:57:00) [1]Народ, а ни кто не пытался использовать OPTION (FAST n) в запросе, просто интересно, будет работать?
sniknik (2003-02-28 13:02:00) [2]Димон1 (28.02.03 12:41)
думаеш я не знаю для чего Application.ProcessMessages нужен?
не понятно зачем он нужен, там, процедура ведь завершается, и обработка идет в основной поток (ничем не занятый). вот это бы кто обьяснил.
подробнее (для тех кто не догоняет :о))).
логично и понятно если так
for i:= ? to ????? begin
.....
Application.ProcessMessages;
.....
end;
непонятно
procedure ...
begin
....
Application.ProcessMessages
end;
чего ждать? и так завершилась. И работает и отрисовывается есть он там или нет.
Димон1 (2003-02-28 12:41:00) [3]>sniknik © (20.02.03 16:20)
>Label1.Caption:= IntToStr(MaxProgress);
>Application.ProcessMessages; //не знаю зачем стоит и без него работает но в примере хелпа стоит
Затем, что бы Label1 прорисовался, а не ждал завершения процедуры
Роман Антонов (2003-02-28 12:21:00) [4]sniknik, все ОК!
Огромное спасибо!!!
sniknik (2003-02-21 22:55:00) [5]2 Andrey_Sobol (21.02.03 22:25)
Ты читать умееш?
Где ты видел слово Table в обсуждении? не считая конечно твоего поста.
Andrey_Sobol (2003-02-21 22:25:00) [6]Мужики, глупостью занимаетесь, не предназначены ADOTable компоненты для работы с таким количеством записей. Делайте запросы к серверу, а не 1млн. записей перекачивайте. Серверу, что больше делать не чего? Возьмите TADOQuery и напишите селект.
Роман Антонов (2003-02-21 16:19:00) [7]Пока нет. Жду. Но смотреть буду скорее всего завтра.
Большое спасибо. О результатах сообщу.
С наступающим праздником!
sniknik (2003-02-21 16:18:00) [8]to Hawk2 (21.02.03 15:47)
вопрос не в том имеет это смысл или нет (я тоже сомневался) см. sniknik © (21.02.03 12:20) а в том почему не работает хотя в методах есть и должно.
а смысл можно "прикрутить", к примеру систама обработки/переноса данных 3 прогресса 1-идет закачка, 2-обработка, 3-сохранение данных(может быть в другую базу). Юзер вилит процес и доволен, не будет видеть, будет жать куда не попадя, и все сломает.
sniknik (2003-02-21 16:16:00) [9]пример дошол? там как?
Роман Антонов (2003-02-21 16:05:00) [10]Hawk2, Интерфейc программы должен позволять делать пользователю любые выборки из базы данных (по крайнер мере, в моем случае), хотя то, что ты пишешь, тоже правильно. Все зависит от поставленной задачи.
Роман Антонов (2003-02-21 15:57:00) [11]Поставил RTL апдэйты. MDAC v.2.7. Вместо TADOQuery использовал TADODataSet. Результат тотже.
Hawk2 (2003-02-21 15:47:00) [12]Извините что вмешиваюсь, но как-то была такая тема о тормозах при открытии таблиц и там говорили, если при работе с базой пользователю выводится больше чем 100 записей, то это неправильная организация работы, так как человек не может анализировать большие наборы информации (если речь идет об анализе), в других случаях вообще нет смысла выдавать пользователю по милиону записей :). Может стоит задуматься о разбивке выводимых данных на блоки (ну там по дате, по отделу или еще как, смотря какая база).
sniknik (2003-02-21 15:31:00) [13]послал. только в ответ на тот ящик не посылай если будеш (в предверии выходных, не отвечу) возьми ящик с форума.
Роман Антонов (2003-02-21 15:16:00) [14]roman@data-izh.udm.ru
Буду очень признателен.
sniknik (2003-02-21 14:24:00) [15]пока тут суть да дело я примерчик написал, буквально из 5 компонент. если хочеш зашлю. архив с exe 305kb ,могу и без екзешника но вдруг в компиляторе дело?, (не верю я в это но вдруг) с exe проше разобратся будет.
>Затем TADOQuery.Open
>Все строго по твоему примеру.
не строго, я квери не использую и тебе не советовал, у меня датасет.
Роман Антонов (2003-02-21 13:24:00) [16]Пока попробую скачать и поставить следующий update.
Роман Антонов (2003-02-21 13:22:00) [17]Сделал TDataSource.AutoEdit:=False. Затем TADOQuery.Open. Забегали цифры. DBGrid пустой. Раздвигаю вправо единственную колонку DBGrid"а. Колонка стала шире, появились наименования колонок и данные. Цифры еще бегут. Кликаю на какую либо ячейку DBGrid"а (все ячейки уже заполнены данными). Цифры не бегут. DBGrid становится активным только после того, как закачаются все записи.
Никакие свойства компонент больше не менял. Все строго по твоему примеру.
sniknik (2003-02-21 13:18:00) [18]да вроде и я через него, а что есть другие? :-)).
а Mdac какой стоит? (хотя при чем тут он до грида у тебя же работает) но на всякий случай у меня 2.7.
>К Delphi6 сделан уже второй upgrade.
у меня 4, 2 upd + 2 rtl.
Роман Антонов (2003-02-21 13:00:00) [19]Работаю через "MS OLE DB Provider for MS SQL Server". Это правильно?
Роман Антонов (2003-02-21 12:57:00) [20]И еще. Пробовал на двух машинах - результат тот же.