Вниз
Скачать: CL | DM;

Нужно запустить ХП в отдельном потоке   Найти похожие ветки 

← →
alextov   (2004-04-22 14:10) [0]

ХП долго выполняется, хочу чтоб Хранимая Процедура отработала в отдельном потоке и не мешала юзеру.
Соответственно пишу в юните потока:

procedure TMyThread.Execute;
var SP: TORaStoredProc;
begin
 freeOnTerminate:=true;
 SP:=ORaStoredProc.Create;
 SP.StoredProcName:="MY_PROC";  
 SP.Prepare;
 SP.Execute;
end;

В главном юните:
procedure TForm1.Button1Click(sender:Tobject);
var thrd: TMyThread;
begin
 thrd:=TMyThread.Create(false);
end;

Поток запускается, ХП запускается, но приложение не реагирует ни на что, пока не завершится выполнение ХП.

Подскажите,плз, где я неправ ...


← →
Reindeer Moss Eater ©   (2004-04-22 14:12) [1]

Наверное ты не весь код нам показал. Тот что в главном юните


← →
alextov   (2004-04-22 14:40) [2]

Действительно, код несколько сложнее, я выбросил из него немного второстепенных деталей потому, что писал по памяти.
Я попробовал откомпилировать приведенный здесь код - и что самое интересное - он работает !!!
Значит проблемы в деталях, но к сожалению исходников под рукой сейчас нет, так что предлагаю вернуться к этому вопросу завтра, когда я помещу здесь оригинальный глючный код :))


← →
Digitman ©   (2004-04-22 14:57) [3]

procedure TMyThread.Execute;
var
SP: TORaStoredProc;
begin
freeOnTerminate:=true;
try
 SP:=ORaStoredProc.Create;
 try
  SP.StoredProcName:="MY_PROC";  
  SP.Prepare;    
  SP.Execute;
 finally
  SP.Free;
 end;

except
end;

end;

хотя это и не принципиально в плане проблемы, но рано или поздно "грабли выстрелят"


← →
Reindeer Moss Eater ©   (2004-04-22 15:03) [4]

try
SP:=TORaStoredProc.Create;

Да этот код вообще в блокноте писался


← →
Курдль ©   (2004-04-22 15:22) [5]

А Вам нужно ожидать каких-то возвращаемых значений от ХП, или просто запустить процесс на серваке?
Тогда авось поможет TOracleQyery у которого в SQL.Text прописан вызов ХП...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.03 c
4-1075818303
Pul
2004-02-03 17:25
2004.04.11
стандартное диалоговое окно


1-1079969664
Rem
2004-03-22 18:34
2004.04.11
OLE_HANDLE


1-1080018399
Pr0ger
2004-03-23 08:06
2004.04.11
List Box


14-1081943310
Vlad Oshin
2004-04-14 15:48
2004.04.11
Как посадить Win95 на винт в 120Мб, если биос не дает кроме


7-1078934009
Александр1
2004-03-10 18:53
2004.04.11
Как записать CD-R или CD-RW




   Наверх