Форум: "Базы";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизРабота с 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.066 c