Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Прервать долгий запрос / 12 сообщений из 12, страница 1 из 1
14.04.2020, 12:02
    #39946917
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
В программе запускается отдельный поток, в этом потоке в read транзакции запускается долгий запрос. Иногда пользователь решает закрыть программу, до окончания выполнения этого запроса.

В Interbase из главного потока вызывал такую процедуру
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TCalcRecCountThread.TerminateQuery;
var
  LHandle: TISC_STMT_HANDLE;
begin
  LHandle := FQueryHandle;
  if LHandle <> nil then
    GDSLibrary.isc_dsql_free_statement(StatusVector, @LHandle, DSQL_cancel);
end;

запрос завершался.

В Firebird вызов этой процедуры дает AV
Access violation at address 00000001 in module 'my.exe'. Read of address 00000001'.
Как можно прервать запрос? Вызывать TerminateThread?


С уважением, Vasilisk
...
Рейтинг: 0 / 0
14.04.2020, 12:06
    #39946918
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
...
Рейтинг: 0 / 0
14.04.2020, 12:09
    #39946920
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
Нашел. fb_cancel_operation()
...
Рейтинг: 0 / 0
14.04.2020, 12:09
    #39946921
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
Симонов Денис,

Да. Спасибо.
...
Рейтинг: 0 / 0
15.04.2020, 02:07
    #39947321
V.Borzov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
Код: sql
1.
delete from mon$attachments where mon$attachment_id  = 


вроде, работает.
...
Рейтинг: 0 / 0
17.04.2020, 12:07
    #39948328
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
15.04.2020 02:07, V.Borzov пишет:
>
> delete from mon$attachments where mon$attachment_id =
> вроде, работает.
>

хм...
а из розетки выключить?

зы: он же запрос прервать хотел.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.04.2020, 12:33
    #39948332
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
Мимопроходящий,

Да, но при выходе из программы, однако.))
...
Рейтинг: 0 / 0
17.04.2020, 12:41
    #39948337
V.Borzov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
Мимопроходящий,

ТС писал про отдельный поток в программе, который выполняет долгий запрос. Отдельный поток - это отдельный коннект к базе, иначе какой в нем смысл, а значит весь коннект этот отдельный можно отрубать целиком таким образом, нет?
...
Рейтинг: 0 / 0
17.04.2020, 12:46
    #39948340
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
17.04.2020 12:41, V.Borzov пишет:
>
> ТС писал про отдельный поток в программе, который выполняет долгий запрос. Отдельный поток - это отдельный коннект к базе

не обязательно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.04.2020, 12:56
    #39948341
V.Borzov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
В каких технологиях это не обязательно? Можно детали узнать? У меня с Дельфи-приложением и Fibplus это тухляк.
...
Рейтинг: 0 / 0
17.04.2020, 13:05
    #39948343
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
V.BorzovВ каких технологиях это не обязательно?

В любых. Общение с базой выносится в фоновый поток чтобы не тормозить обработку сообщений GUI.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.04.2020, 13:15
    #39948348
V.Borzov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прервать долгий запрос
Если только ради фонового потока, то да, согласен, и отрубание всего коннекта здесь неприемлемо.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Прервать долгий запрос / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]