Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

Выполнение запроса с помощью TOracleQuery (DOA) в потоке.   Найти похожие ветки 

 
Plt   (2004-07-01 16:12) [0]

Запускается приложение, конектюсь к базе. У TOracleSession свойство ThreadSafe = true. Передаю сессию в поток. Но пока не выполнится поток невозможно открыть новую форму!! В форму тоже передается сессия. Делаю так:

 TSAMSesThread = class(TThread)
 private
   ExecQry: TOracleQuery;
   HotSAM : string;
   Ses : TOracleSession;
 protected
   procedure Execute; override;
   procedure SaveAction;
 public
   procedure InitSAMSes(aSes : TOracleSession);
 end;

procedure TSAMSesThread.InitSAMSes(aSes: TOracleSession);
begin
 FreeOnTerminate := True;
 Ses := aSes;
 ExecQry := TOracleQuery.Create(nil);
 ExecQry.Session := Ses;
 with ExecQry do
 begin
   SQL.Clear;
   SQL.Add(".....");
 end;
 Resume;
end;

procedure TSAMSesThread.Execute;
begin
 try
   ExecQry.Execute;
   with ExecQry do
   begin
     while not Eof do
     begin
       HotSAM := HotSAM + Format("%s [¹%d Îïèñàíèå: %s]",[FieldAsString("sam"),FieldAsInteger("dev_id"),FieldAsString("dev_dsc")]) + ",";
       Next;
     end;
     if RowCount > 0 then
       Synchronize(SaveAction);
   end;    
 finally
   ExecQry.Free;
 end;
end;


 
Erik1   (2004-07-01 17:06) [1]

Поставь ExecQry.ThreadSafe := False; и Synchro... := False;



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

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.023 c
3-1087964746
vlgrig1961
2004-06-23 08:25
2004.07.18
Помогите составить запрос на Oracle


14-1088329306
Ihor Osov'yak
2004-06-27 13:41
2004.07.18
holly war: D8 vs C# - навеяно одной веткой из основной


14-1088685167
Cincinnut
2004-07-01 16:32
2004.07.18
Как не надо заниматься вымогательством


1-1089003161
ai
2004-07-05 08:52
2004.07.18
Quick Report: как изменять разрешение при печати?


11-1076537318
DDA
2004-02-12 01:08
2004.07.18
KOL