![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Progress в обработке запрса? [D5, MySQL, Access]
Matvey © (2003-04-07 21:33:00)Проблема состоит в следующем, при осуществлении выборки из базы посредствам SQL
SQL.Add("SELECT * FROM Reg_Reestr");
SQL.Add("WHERE Naiminov LIKE :Zapros");
Params.ParamByName("Zapros").AsString:="*"+NewText+"*";
примерно так, необходимо отображать ход поиска так как записей порядка 150 тысяч, и конечному пользователю будет не интересно смотреть на мертвый экран.Как это сделать используя TGauge, или есть другие специально заточенные под такие надобности компоненты?
И еще нормально ли что размер базы MDB, имеющей как я уже говорил, порядка 150 тысяч записей, составляет 500 Mb, как его можно сократить так всего одна таблица и 7 String полей?
sniknik (2003-04-07 23:54:00) [1]для Access береш родной ему ADO + включаеш асинхронное получение данных, в зависимости от настроек будут возвращатся(или нет) количество полученных записей на onFetchProgress (клиент/сервер зависят но не помню где что).
дальше твое дело, жди конца запроса и показывай прогресс или начинай обработку не дожидаясь конца.
> 150 тысяч записей, составляет 500 Mb
ну скорее всего нужно просто сделать "упаковку и восстановлений" в Access (проще всего) можно и програмно.
Matvey (2003-04-07 23:32:00) [2]Да, не густо. :(
dred2k (2003-04-07 22:00:00) [3]Ну, во-первых, сама идея SQL не приемлет никаких там цветных гауджей. ;)
Во-вторых, если использовать LocalSQL BDE, то организация такого мониторинга возможна, но есть масса ограничений. Для стандартных DBISAM-драйверов (Paradox, DBase, ...) работает механизм callback-ов. Признаться, работает по-разному и криво (для парадокса изучено подробно и могу потом рассказать...). Для SQL-серверов (через SQLLinks) callback-и тоже имеют место, но лишь на уровне буквально двух вызовов - запрос ушел и запрос пришел (проверено на IB, как будет работать Access - не знаю, думаю - так же).
В третьих, есть вероятность, что подобные заморочки может поддержать какая-либо платформа в отдельности (средствами "живого" API). Вариант не исключается, доп. сведений по перечисленным платформам нет. ;)
Вот и все пока.