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

Вниз

Работа с IbConnectionBroker   Найти похожие ветки 

 
DelphiN!   (2009-03-31 10:06) [0]

Доброго времени суток!
Возникла необходимость работать с базой 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;
       //RemouteBroker.AvailableConnections
       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ой базой.

 Как правильно сменить базу данных?


 
DelphiN!   (2009-03-31 10:12) [1]

Не то вставил, заменить жирное, этим.

     if RemouteDataBase <> nil then
     begin
       RemouteBroker.ReleaseConnection(RemouteDataBase);
       RemouteDataBase.Close;
       RemouteDataBase.Free;
       RemouteDataBase := nil;
       Sleep(2000);
     end;
     try
       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;


 
DelphiN!   (2009-04-03 12:29) [2]

up



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

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

Наверх




Память: 0.47 MB
Время: 0.141 c
15-1269450049
Zver
2010-03-24 20:00
2010.08.27
Дискреционная политика безопасности.


15-1272463188
Раиса
2010-04-28 17:59
2010.08.27
Биноминальные коэффициенты - не понимаю


15-1272810608
antonn
2010-05-02 18:30
2010.08.27
Просьба прогнать тест еще раз :)


2-1269192324
Невилл
2010-03-21 20:25
2010.08.27
Delphi2009 и StringGrid


2-1273151484
Danco
2010-05-06 17:11
2010.08.27
Сохранение TreeView в текст