Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > прога зависает при обращении к БД


Автор: sergey_85 30.7.2008, 07:43
Привет!

Вот такой вопрос, при длительном обращении к БД, например большой выборке (select * from ...) dataset1->Post() (по клику на кнопке) программа подвисает. 
Как поступить в данном случае?

Я думаю так,  создать отдельный поток и выполнять данную оперцию(-и) в отдельном потоке, есть ещё какой-то вариант?

.. а и ещё, все датасеты расположены в датамодуле и создаются по умолчанию при старте программы.

Автор: Acer 10.9.2008, 08:20
Установи тайм-аут разрыва соединения при выполнении запроса, если это возможно в твоих датасэтах..

Автор: dizzy1984 11.9.2008, 06:46
Да, создавай поток и выполняй запросы в нем. Других вариантов afaik нет.
Немного не по теме - из того что я помню по delphy - ведь там весь гуи выведен в отдельный поток, по идее прога не "виснет" даже на трудоемких вычислениях. Странно что иначе дело обстоит с запросами.

Автор: Rodman 11.9.2008, 16:31
на чем пишем? что пишем?

Какая СУБД?

Автор: Lycifer 26.9.2008, 16:58
Оптимицазия запрос, ну и конечно пулы потоков
Насчет оптимиции не стоит забывать что SQL server не очень хорошо работает на большой базе с операциее OR используй union
Хорошие операции : select,update,insert...(ну и дам идексы....)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)