![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прерывание выполнения запроса [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