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