Форум: "Базы";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
Внизстранное поведение IbQuery Найти похожие ветки
← →
jack128 (2003-09-16 20:51) [0]вот такой код
procedure TForm1.Button1Click(Sender: TObject);
var
t : Cardinal;
begin
if not ibquery1.Active then
ibQuery1.Open;
try
t := GetTickCount;
ibquery1.FetchAll;
Caption := IntToStr(GetTickCount() - t);
finally
ibquery1.Close;
end;
end;
(в ibQuery1 запрос select * from my_table)
если в дезин тайм выставить ibquery1.Active := true; то после нажатия кнопки Caption := "1000"
Если в дезин тайм ibquery1.Active := False; то Caption := "380";
Почему???
← →
Zacho (2003-09-16 21:03) [1]Ну и что именно здесь странного ? И вообще, зачем тебе это надо ?
P.S. Вместо
if not ibquery1.Active then
достаточно
ibQuery1.Open;ibquery1.Active:=true;
← →
jack128 (2003-09-16 21:37) [2]Странно, то что если запрос открывают непосредственно перед FetchAll, то фетч выполняется в три раза быстрее, чем если запрос открыт открыт при загрузке программы(открыт в дезин тайм)..
← →
Zacho (2003-09-16 21:46) [3]Да мало ли, почему. Например, в случае, если запрос уже открыт в design time, то при открытии его же (естественно, реально - уже в другом процессе и в другом коннекте) банально не хватает физической памяти, или время уходит на создание второго коннекта.
Еще могу что-нибудь придумать, только зачем, какой в этом практический смысл ?
P.S. Кстати, ты это делаешь при запуске из Дельфи или нет ?
← →
jack128 (2003-09-16 21:56) [4]
> Кстати, ты это делаешь при запуске из Дельфи или нет ?
Из дельфей
А смысл в том, что о того, как быстро длится фетч зависит как мне заполнять дерево из базы..(юзер может подождать 300 мсек при распахивании дерева, но не 1 секунду..)
← →
Zacho (2003-09-16 22:01) [5]
>
> jack128 © (16.09.03 21:56) [4]
> Из дельфей
Вот в этом все и дело. Похоже, еще и сервер локальный ?
← →
jack128 (2003-09-16 22:06) [6]После серии экстерементов(из дельфей и из проводника) ситуция изменилась теперь в обоих случаях фетч длится одинаково..
> Похоже, еще и сервер локальный ?
Firebird??
← →
Zacho (2003-09-16 22:16) [7]
> jack128 © (16.09.03 22:06) [6]
> После серии экстерементов(из дельфей и из проводника) ситуция
> изменилась теперь в обоих случаях фетч длится одинаково..
Имхо, в памяти дело. И в кол-ве коннектов к серверу. В общем, сам посмотри и подумай, направление для размышллений я тебе уже дал.
> Firebird??
Без разницы, IB, FB, YA или вообще что-то другое.
На том же компе сервер, что и твоя программа, или в сети ?
← →
jack128 (2003-09-17 00:24) [8]
> На том же компе сервер, что и твоя программа, или в сети
> ?
На том же компе, но конект "localhost:<путь к базе>" , разве для сервера в таком случае есть разница, на том же компе база или на другом??
А вообще, замнем вопрос... Попробую без фетча, а-ля DBGrid сделать..
← →
Zacho (2003-09-17 01:36) [9]
> jack128 © (17.09.03 00:24) [8]
> На том же компе, но конект "localhost:<путь к базе>" , разве
> для сервера в таком случае есть разница, на том же компе
> база или на другом??
А БД и не может находится на другом компе, не работает сервер IB с файлами БД в сети :) Разница есть, находится ли клинтское приложение на том же компе, что и сервер, или нет. Ведь все это память кушает (да еще и Дельфи запущена), а она не безразмерная.. А когда свободная физ. память кончается, что происходит ?
Ты просто посмотри, сколько у тебя свободной физической памяти в первом случае и во втором.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c