Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов Prepare для IBStoredProc не даёт эффекта [D7, IB6.x]


oleg_p ©   (2004-12-23 11:29:00) 

Есть хранимая процедура без выходных параметров, которая используется для записи данных в базу и вызывается много-много раз (сотни тысяч) сильно тормозя . Делаю так (здесь SP - TIBStroredProc):

SP.Prepare // один раз
....
// Следующий код повторяется многократно:
SP.ParamByName('ID').AsInteger := ID;
SP.ParamByName('ASEC').AsInteger := ASEC;
SP.ParamByName('ABASE_YEAR').AsInteger := ABASE_YEAR;
SP.ParamByName('AVALUE').AsFloat := AVALUE;
SP.ExecProc;

Если убрать Prepare - время выполнения кода остаётся абсолютно тем же. Почему ???
Заметил что, после вызова ExeProc всегда Prepared = False, независимо от того, каким оно было до вызова.

Прошу вашей помощи !!! или дайте ссылку где почитать

Работаю в Delpi 7 IBX 6 Firebird 1.0.2.908


oleg_p   (2004-12-23 12:45:00) [1]

Заменил IBStoredProc на IBSQL - все заработало. СПАСИБО !


Johnmen   (2004-12-23 11:39:00) [2]

>oleg_p  

Моё имхо - это глюкавость IBX в целом и TIBStroredProc в частности.


Sergey13   (2004-12-23 11:35:00) [3]

2oleg_p   (23.12.04 11:29)
ИМХО, ты не в ту сторону роешь. Имеет смысл переделать ХП так, что бы при однократном вызове он делала то, что сейчас делает за сотни тысяч раз.


Соловьев   (2004-12-23 11:32:00) [4]

TIBStroredProc кажись она глюкавая.. Может 2-й сервис пак даст улучшения, но ХП можно(а наверное и нужно) дергать через IBSQL


Наверх

Титульная страница Поиск, карта сайта Написать письмо