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

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

DB и потоки [D5]


Jack ©   (2002-11-27 19:20:00) 

Народ! Подскажите! Для перекачки БД из FoxPro в Oracle использую фоновий процесс. Когда таблица заканчивается, поток нормально завершаеться. Если его завешать с помощью Terminate из главной формы, поток продолжает висеть.


Jack   (2002-11-27 19:42:00) [1]

Я использую:

begin
while (not SourceTable.EOF)and(not Terminate) do begin
for i:=0 to SourceTable.FieldDefs.Count-1 do
DestQuery.Params[i].Value:=SourceTable.Fields[i].Value;
DestQuery.ExecSQL;
SourceTable.Next;
end;
SourceTable.Close;
end;

Если из цикла по EOF, то все нормально. А если по Terminate, то поток не завершается, хотя в главной форме вызывается PumpThread.Free


Diouzshev   (2002-11-27 19:28:00) [2]

Если есть цикл в потоке - в него воткни что-то типа:

if Terminated then Abort;

могу ошибаться, так что посмотри стандартый делфовый пример нитей (с сортировками)


Наверх

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