Доброго времени суток!
Возникла необходимость работать с базой FireBird 2.1 в отдельном потоке, решил использовать компонент IbConnectionBroker, примеров использования данного компонента кроме одного простого не нашел, использую его в отдельном потоке следующим образом :
for i := 0 to frmSettings.GridClubBases.RowCount-1 do
begin
RemouteDataSet.Close;
if RemouteDataBase <> nil then
begin
RemouteDataBase.Close;
RemouteDataBase.
RemouteDataBase.Free;
RemouteDataBase := nil;
Sleep(2000);
end;
try
RemouteBroker.ReleaseConnection(RemouteDataBase);
RemouteBroker.DatabaseName := frmSettings.GridClubBases.Cells[1,i];
RemouteBroker.Params.Text := 'user_name=SYSDBA';
RemouteBroker.Params.Add('password='+DBAPass);
RemouteBroker.Init;
Sleep(2000);
RemouteDataBase := RemouteBroker.GetConnection;
except
Continue;
end;
RemouteDataBase.LoginPrompt := false;
RemouteDataSet.Database := RemouteDataBase;
RemouteDataSet.Transaction := RemouteDataBase.DefaultTransaction;
RemouteDataSet.SelectSQL.Text := 'SELECT * FROM USERS WHERE LOGIN_ = '''+Login+'''';
RemouteDataSet.Open;
while (not RemouteDataSet.Eof) do
begin
...
RemouteDataSet.Next;
end;
end;
В цикле перебирается множество баз, в которых производится поиск необходимых данных. Однако компонент IbConnectionBroker соединяется с 1ой базой, но не отсоединяется от нее и во всех итерациях цикла работает с 1ой базой.
Как правильно сменить базу данных?