![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
асинхронный запуск StoredProc через TADOCommand
tyo © (2006-03-29 21:31:00)Запускаю оракловую процедуру асинхронно через TADOCommand и одновременно Thread чтобы "поймать" окончание процедуры. Вроде все работает. Однако при попытке запустить точно такую же процедуру на др. сервере -- почему-то серверная процедура не срабатывает, хотя клиент в exception не вываливается (На обоих серверах все идентично, напрямую из sqlplus процедура работает на обоих). Никаких мыслей нет...
дельфийский код примерно такой:
with MyCommand do
begin
CommandType:=cmdStoredProc;
CommandText:='ORACLE_STORED_PROC';
ExecuteOptions=[eoAsyncExecute];
MyThread:=TMyThread.Create(FALSE);
Execute;
end;
TMyThread.IsFinished;
begin
try
if not (stExecuting in MyCommand.States) then
begin
Terminate;
ShowMessage('Наконец-то доработала');
end;
except
ShowMessage('Какая-то фигна с процедурой');
end;
end;
TMyThread.Execute;
begin
repeat
sleep(100);
Synchronize(IsFinished);
until false;
end;
tyo (2006-03-30 09:17:00) [1]Нашел! Ой блин, идиот... У меня в проге было 2 коннекта, один для синхронных вызовов, другой для асинхронных. При переходе на др. сервер синхронный коннект перенацелил на него, а асинхронный -- забыл.
Идиёт.
tyo (2006-03-29 21:58:00) [2]
> событие окончания команд есть у коннекта
Если даже ловить окончание процедуры по событию коннекта -- какая разница, процедура-то все равно не срабатывает из-под дельфийского клиента (суть процедуры -- шарит по неск. таблицам и затем еще в одну таблицу пишет). А из sqlplus -- срабатывает. И на др. сервере из-под того же дельфийского клиента -- тоже.
Мистика какая-то. :(
sniknik (2006-03-29 21:47:00) [3]событие окончания команд есть у коннекта