Форум: "Базы";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизБольшой запрос в interbase 6.0 Найти похожие ветки
← →
Васек1 (2005-03-01 17:03) [0]Уважаемые мастера, подскажите плиз начинающему. Написал большую сторед процедуру (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
← →
Desdechado © (2005-03-01 17:08) [1]длина откомпилированного кода процедуры (со всемы вызываемыми) не может превышать 64 кб
раздели на 2
← →
Васек1 (2005-03-01 17:12) [2]спасибо огромное за ответ, а если попробовать оптимизтровать без case можно как то ? Те в запросе идет полный перебор всех вариантов
(isRep <> "Y" and ..... and isSpec = "Y" and)
← →
Desdechado © (2005-03-01 17:22) [3]передать "вариант" как параметр извне
← →
DSKalugin © (2005-03-01 19:27) [4]все это можно решить без использования ХП на стороне клиента обычными запросами
← →
Desdechado © (2005-03-01 20:47) [5]2 DSKalugin
Может, человек хочет всю бизнес-логику на сервер вынести. Такое поощрять надо.
← →
Васек1 (2005-03-02 13:16) [6]Спасибо большое за ответы. Мне кажется самый лучьший вариант из всего выше изложенного будет вынести исполняемый код в несколько других процедур и вызывать их из первой в зависимости от условия. Еще раз большое спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c