Главная страница
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.066 c
2-1270793257
Abcdef123
2010-04-09 10:07
2010.08.27
Проблема после перевода проекта из Дельфи 6 в Дельфи 2007.


2-1271740246
serhiyiv
2010-04-20 09:10
2010.08.27
Прочитать текст с екрана


15-1267474353
Правильный$Вася
2010-03-01 23:12
2010.08.27
Настроить монитор под свои глаза


3-1237837778
Гарик
2009-03-23 22:49
2010.08.27
Вызов хранимых процедур


15-1265198569
Андрей Прокопенко
2010-02-03 15:02
2010.08.27
"Немыслимое что-то..."