| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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...(ну и дам идексы....) |