Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Dimich1978
Зарегистрирован: 18.05.2010 Сообщения: 69
|
Добавлено: Ср Авг 21, 2013 17:30 Заголовок сообщения: scan . Объявить и обнулить переменную до скана |
|
|
есть код, как видим переменные i и j необходимо обнулить до скана для корректной работы алгоритма, один вопрос и думаю из него же следует - Ошибку выдает "invalid column name i". Как тут можно победить ситуевину?
scan @del1
select * from prtb_used_leave
where id_period_leave in (select id_period_leave from #gmc2)
execute
{
let all_days= @del1:days_used; --дни из текущей записи (из скана)
if i=0 then {let s1=all_days-(select summanach from #nach) };
if i>0 and j=0 then { s1=all_days-s1};
if s1>=0 then {
update prtb_used_leave set days_used=s1 where id_used_leave=@del1:id_used_leave;
let j=j+1;
};
if s1<0 then {
update prtb_used_leave set days_used=0 where id_used_leave=@del1:id_used_leave;
let i=i+1;
};
}; |
|
Вернуться к началу |
|
|
Dimich1978
Зарегистрирован: 18.05.2010 Сообщения: 69
|
Добавлено: Ср Авг 21, 2013 17:32 Заголовок сообщения: |
|
|
на всякий случай взял в скобки все условия, но ошибка осталась
scan @del1
select * from prtb_used_leave
where id_period_leave in (select id_period_leave from #gmc2)
execute
{
return 123;
let all_days= @del1:days_used; --дни из текущей записи (из скана)
if (i=0) then {let s1=all_days-(select summanach from #nach) };
if ((i>0) and (j=0)) then { s1=all_days-s1};
if (s1>=0) then {
update prtb_used_leave set days_used=s1 where id_used_leave=@del1:id_used_leave;
let j=j+1;
};
if (s1<0) then {
update prtb_used_leave set days_used=0 where id_used_leave=@del1:id_used_leave;
let i=i+1;
};
}; |
|
Вернуться к началу |
|
|
RVV Большой шоколадный орден
Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Чт Авг 22, 2013 11:51 Заголовок сообщения: |
|
|
1 Объявите СВОИ переменные до SCAN
LOCAL {_my_i := 0; _my_j := 0;};
2 Не пользуйтесь именами переменных i и j |
|
Вернуться к началу |
|
|
Dimich1978
Зарегистрирован: 18.05.2010 Сообщения: 69
|
Добавлено: Пт Авг 23, 2013 16:58 Заголовок сообщения: |
|
|
Спасибо , помогла замена имен переменных.
Вопрос, если есть скан в скане. Как можно выйти из вложенного, но чтобы внешний продолжил работу.
breack рубит все. |
|
Вернуться к началу |
|
|
Dimich1978
Зарегистрирован: 18.05.2010 Сообщения: 69
|
Добавлено: Пт Авг 23, 2013 17:30 Заголовок сообщения: |
|
|
вроде как goto мне в помощь |
|
Вернуться к началу |
|
|
Dimich1978
Зарегистрирован: 18.05.2010 Сообщения: 69
|
Добавлено: Пт Авг 23, 2013 17:54 Заголовок сообщения: |
|
|
нет, и goto останавливает работу программы почему то. |
|
Вернуться к началу |
|
|
RVV Большой шоколадный орден
Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пн Авг 26, 2013 09:44 Заголовок сообщения: |
|
|
GOTO должен работать. |
|
Вернуться к началу |
|
|
|