Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Внизасинхронный запуск StoredProc через TADOCommand Найти похожие ветки
← →
tyo (2006-03-29 21:31) [0]Запускаю оракловую процедуру асинхронно через 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;
← →
sniknik © (2006-03-29 21:47) [1]событие окончания команд есть у коннекта
← →
tyo (2006-03-29 21:58) [2]
> событие окончания команд есть у коннекта
Если даже ловить окончание процедуры по событию коннекта -- какая разница, процедура-то все равно не срабатывает из-под дельфийского клиента (суть процедуры -- шарит по неск. таблицам и затем еще в одну таблицу пишет). А из sqlplus -- срабатывает. И на др. сервере из-под того же дельфийского клиента -- тоже.
Мистика какая-то. :(
← →
tyo (2006-03-30 09:17) [3]Нашел! Ой блин, идиот... У меня в проге было 2 коннекта, один для синхронных вызовов, другой для асинхронных. При переходе на др. сервер синхронный коннект перенацелил на него, а асинхронный -- забыл.
Идиёт.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.049 c