![]() |
|
|
![]()
|
|
| VSH |
|
|||
|
Unregistered |
Ответьте пожалуйста, если можно с примером (куском кода), а то хелп Delphi очень скуден на примеры.
|
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Ответ на ентот вопрос есть в FAQ'е.
А вот этим кодом я формировал массив из БД и заносил из него сведения в текстовик
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| VSH |
|
|||
|
Unregistered |
Спасибо, Cashey
Но Lookup'ы из фака не подходят, мне нужны: ARR1, содержащий все данные 1-го столбца таблицы БД, ARR2 - второго и т.д. Перебор записей в цикле используя TDataSet - это очень печально по скорости выполнения. Меня интересует, есть ли что-нибудь побыстрее или хотябы те же циклы, но оформленные стандартными методами (всёже быстрее чем писать своё)? |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
В любом случае прийдётся цикл крутить:
For... MyArray[i]:=Table1.fields[0].asstring Table1.next -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Сразу же извеняюсь, не знаю сработает ли это в Delphi (не проверял). А в FoxPro можно сформировать массив SQL запросом (работает моментально). Если есть желание можешь попробовать.
Попробуй через TQuery -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| VSH |
|
|||
|
Unregistered |
Скорость инициализации 3-х массивов из 400 записей методами TDataSet и TADOTable оказалась одинаковой (только что таймером измерял) = 2 сек. не 2-м пне.
Вспомнил про волшебные свойства DataSet.DisableControls; (перед циклом) и DataSet.EnableControls; (после), скорость - доли секунды. Vit всё равно спасибо, узнал хоть что перебор можно осуществлять методами таблицы и в коде у себя оставил для разнообразия |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Если есть связанные таблицы, то циклы с EnableControls и DisableControls работают некоректно, мне пришлось отключать DBGrid на время выполнения цикла.
|
|||
|
||||
| altarasjuk |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: нет Всего: 1 |
Можно ещё создать что-то типа конекшн-пула, тогда не надо будет тратить время на создание кверя и его убийство.... Это сообщение отредактировал(а) altarasjuk - 14.9.2003, 13:22 -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
||||
|
|||||
| mihana |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 3.11.2010 Репутация: нет Всего: нет |
Здравствуйте уважаемые знатоки Delphi и не ток, у меня такая проблемка может посоветуйте че-нить. есть у меня база в которой идет расчет коммунальных услуг в базе этой около 300 записей и при расчете я бы хотел чтоб за время етого расчета отображалось состояние Progressbar но когда я ставил его то все бесполезно прога при расчете подвисает.
если кто что-нибудь знает подскажите пожалуйста. вот код на расчет по дому № 4...
за-ранее большое |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
mihana, создай новую тему (к этой твой вопрос явно не относится) и уточни, куда именно хочешь ProgressBar вставить в своём коде.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
И куда ж ты "ставил" ProgressBar
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |