Есть база данных на sql server 2008 с номерами телефонов и программа на delphi 2010, осуществляющая поиск по этой базе данных нужного номера. Сам поиск реализован в хранимой процедуре Proc_Poisk_po_nomeru на sql server :
Код:
procedure TFormMain.PoiskNomeraClick(Sender: TObject);
var i: integer;
begin //если в поле поиска номера телефона ничего не введено, то выдаем сообщение об ошибке
if Length(VvodNomeraDlyaPoiska.Text) < 1 then MessageBox(0,'Номер телефона не задан!','Предупреждение',MB_OK);
begin
//делаем поиск по базе данных
ADOStoredProc_Poisk_po_nomeru.Parameters.ParamValues['@nom'] := VvodNomeraDlyaPoiska.Text;
ADOStoredProc_Poisk_po_nomeru.ExecProc;
//Отображение результата поиска в Grid
ADOQueryPoisk.Sql.Clear;
ADOQueryPoisk.Sql.Add('Select Номер,"Дата и время",Длительность, Комментарий from ##Rezultat_poiska_po_nomeru');
ADOQueryPoisk.Open;
ShowMessage('Найдено записей по указанному номеру телефона - ' + IntToStr(ADOQueryPoisk.RecordCount));
end;
end;
end;
Так как телефонов в БД много и поиск реализован на неполное соответствие, то весь процесс занимает много времени. Поэтому хотелось, чтобы пользователь видел, что поиск идет. Для этого реализована другая форма с анимацией (форма с компонентой Animate1):
Код:
procedure TFormAnimate.FormCreate(Sender: TObject);
begin
Animate1.Active := true;
end;
Как сделать так, чтобы при вызове хранимой процедуры поиск одновременно запускалась форма с анимацией до окончания процесса поиска? Если просто делать вызов этой формы, то все идет последовательно, то есть пока не закрыть форму с анимацией, хранимая процедура вызываться не будет. Как эти процессы сделать параллельными?