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

Вниз

странное поведение 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
1-18289
MakNik
2003-09-26 09:14
2003.10.06
QReport


1-18306
Кен
2003-09-23 06:58
2003.10.06
Как сделать так, чтобы из RichEdit а нельзя было копировать в буф


6-18499
Lady N
2003-08-09 19:48
2003.10.06
время в инете


14-18541
саша2
2003-09-17 09:30
2003.10.06
по теме


7-18657
alois
2003-07-22 18:37
2003.10.06
Номер материнской платы