Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прерывание выполнения запроса [D7, MSSQL]


NewDelpher ©   (2004-09-22 15:00:00) 

С клиентской машины я делаю SQL-запрос, пока данные не получены создается впечатление, будто программа зависла. Как мне прервать выполнение запроса?
Ведь Query Analyzer это как-то делает.


KSergey   (2004-09-23 12:34:00) [1]

> [1] NewDelpher ©   (22.09.04 15:29)

См. ExecuteOptions  *Async*
А так же учитывай, что в QA используется серверный курсор - это тоже многое значит. (в части "скорости" открытия)

На королевстве см. статьи про ADO


sniknik   (2004-09-22 17:29:00) [2]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1095044872&n=1


Суслик   (2004-09-22 17:25:00) [3]


>  [7] Димитрий ©   (22.09.04 16:38)

ну это один, и наверное не самый лучший способ.

query analizer останавливает запрос долго. Вряд ли он так долго убивает поток.

Очевидно, что должен быть цивилизованный способ.


Димитрий   (2004-09-22 16:38:00) [4]

Суслик ©

Убить поток


Суслик   (2004-09-22 16:30:00) [5]

Контрольный вопрос.
Допустим, что в одном потоке используя adodb.command выполняется запрос к БД.
Каким способом можно прервать этот запрос из другого потока?

ЗЫ. По условиям задачи другой поток знает о первом потоке, о adodb.command и о adodb.command.


Димитрий   (2004-09-22 16:12:00) [6]


> Суслик ©   (22.09.04 15:59) [3]
>
> > Без использования многопоточного доступа к БД это не получится
>
> а если его использовать?

тогда можно. только нужно создать наследника от TThread, инкапсулирующего в себе компонеты доступа к БД и с этими компонетами уже работать


Карелин Артем   (2004-09-22 16:12:00) [7]

Делать запрос к базе внутри TTread.Execute.
Результат выводить в основной поток с помощью synchronize


Суслик   (2004-09-22 15:59:00) [8]


> Без использования многопоточного доступа к БД это не получится

а если его использовать?


Димитрий   (2004-09-22 15:58:00) [9]

Без использования многопоточного доступа к БД это не получится


NewDelpher   (2004-09-22 15:29:00) [10]

Еще добавлю, что использую компоненты ADO и данные получаю в TADODataSet


Наверх

Титульная страница Поиск, карта сайта Написать письмо