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

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

Остановка выполнения SQL запроса [D7, MySQL]


Fedia ©   (2004-09-19 07:51:00) 

Знает ли кто-нибудь, как корректно прервать работу программы во время выполнения SQL запроса, не дожидаясь его завершения?
Для подключения к базе данных использую компоненты Zeos Access. Очень нужен совет.


Nikolay M.   (2004-09-20 10:20:00) [1]

Выполнить на мускульном сервере
kill номер_запроса.
Или из командной строки ОС (пишу по памяти)
mysql -pPASSWORD -uUSER DATABASENAME -e "kill номер_запроса"


Fedia   (2004-09-20 08:27:00) [2]

Polevi ©   (19.09.04 08:40) [1]
Уничтожая поток таким образом получал два вида ошибок:
1. AccessViolation;
2. Lost connection .. (В общем потеря связи во время выполнения запроса).
Добавил в процедуру уничтожения запроса

   Potok.Suspend;
   sleep(2000);
   ZMySqlDatabase1.Disconnect;
   GetExitCodeThread(Potok.ThreadID, i);
   TerminateThread(Potok.ThreadID, i);
   sleep(1000);
   //далее освобождение памяти

Теперь вроде работает стабильно, хотя время покажет: на сколько стабильно. Спасибо за совет


Polevi   (2004-09-19 08:40:00) [3]

запрос в доп. потоке + TerminateThread


Наверх

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