В общем в потоке все перебирает отлично, но вот делаю запись в бд Access через синхронизацию 
использую вот эту функцию RecordPositions. Создается большая очередь и программа работает не очень быстро из-за этого как можно произвести запись прямо в потоке? (например без синхронизации)
	Код:
	function RecordPositions(a,b,c:integer; d,e,r,t:string):string;
begin
      dm.AdQ_Pos1.Active:=true;
      dm.AdQ_Pos1.Append;
      dm.AdQ_Pos1.FieldByName('t').AsString := t;
      dm.AdQ_Pos1.FieldByName('b').AsInteger := b; 
      dm.AdQ_Pos1.FieldByName('c').AsInteger := c; 
      dm.AdQ_Pos1.FieldByName('d').AsString := d;
      dm.AdQ_Pos1.FieldByName('e').AsString := e; 
      dm.AdQ_Pos1.FieldByName('r').AsString := r; 
      dm.AdQ_Pos1.FieldByName('a').AsInteger := a; 
      dm.AdQ_Pos1.POST;
      dm.AdQ_Pos1.Active:=false;
      Exit;
end;