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

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

Большой запрос в interbase 6.0 [D6, IB6.x]


Васек1 ©   (2005-03-01 17:03:00) 

Уважаемые мастера, подскажите плиз начинающему. Написал большую сторед процедуру (1282 строки) и она не работает. Если комментирую любой из кусков то работает, те такое впечатление что пролблема в длинне процедуры.
А может его как то оптимизировать можно?

запрос такого типа:

CREATE PROCEDURE STP_GET_EMPLOYEE_ACCOUNTS (
   EMPLOYEEID INTEGER)
RETURNS (
   ACCOUNTID INTEGER)
AS
DECLARE VARIABLE ISREP VARCHAR(1);
DECLARE VARIABLE ISSPEC VARCHAR(1);
begin
   (isRep <> 'Y' and
    isSpec <> 'Y' and) then
 for
   select a.accountID
     from ..........

     into :accountID
 do suspend;
 
 union

 else if
   (isRep <> 'Y' and
    isSpec = 'Y' and) then
 for
   select a.accountID
     from ......

     into :accountID
 do suspend;

.....................

end


Васек1   (2005-03-02 13:16:00) [1]

Спасибо большое за ответы. Мне кажется самый лучьший вариант из всего выше изложенного будет вынести исполняемый код в несколько других процедур и вызывать их из первой в зависимости от условия. Еще раз большое спасибо.


Desdechado   (2005-03-01 20:47:00) [2]

2 DSKalugin
Может, человек хочет всю бизнес-логику на сервер вынести. Такое поощрять надо.


DSKalugin   (2005-03-01 19:27:00) [3]

все это можно решить без использования ХП на стороне клиента обычными запросами


Desdechado   (2005-03-01 17:22:00) [4]

передать "вариант" как параметр извне


Васек1   (2005-03-01 17:12:00) [5]

спасибо огромное за ответ, а если попробовать оптимизтровать без case можно как то ? Те в запросе идет полный перебор всех вариантов

(isRep <> 'Y' and ..... and isSpec = 'Y' and)


Desdechado   (2005-03-01 17:08:00) [6]

длина откомпилированного кода процедуры (со всемы вызываемыми) не может превышать 64 кб
раздели на 2


Наверх

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