Главная страница
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.124 c
2-1266488901
pleasure
2010-02-18 13:28
2010.08.27
каскадное копирование TSQL


15-1269419887
begemot
2010-03-24 11:38
2010.08.27
Как гос.организации приобрести DELPHI?


15-1266239343
Den
2010-02-15 16:09
2010.08.27
Узнать количество обращений к серверу


15-1275083308
Германн
2010-05-29 01:48
2010.08.27
Сдвинуть блок текста в IDE влево


3-1242203480
Int23
2009-05-13 12:31
2010.08.27
Как получить список полей в ХП в МС СКЛ 2005