![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов 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