Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Emel Участник со стажем
Вступление в Клуб: 02.07.2007
|
Сб Апр 12, 2008 11:25  Обновлению записи таблицы |
|
Полезность: Нет оценки
|
Привет Всем
Есть программа по обновлению записи таблицы
Код: |
procedure Dh_plastKart( P_DAT in [DATE] ) is
v_this ref [BIB_ENN071211];
begin
for (
select a
(
a.code : Code
, a%id : Id
)
in ::[BIB_ENN071211]
)
loop
v_this := a.Id;
if v_this = 66216403 then
v_this->[BIB_EDIT#AUTO]( '0123', 'Форма', false, 'Шаблон',123,'Выполнить');
end if;
end loop;
end;
|
Вопрос : Можно ли обновить не все поля, а только часть из них?
например значение поле '0123'
оставить как было в таблице.
Пробовал вместо параметра поставить null
записывает null.
Спасибо |
|
 |
faded Участник со стажем
Вступление в Клуб: 17.09.2007
|
Сб Апр 12, 2008 11:58   |
|
Полезность: Нет оценки
|
1. написать новую операцию
2. вместо вызова операции просто менять поле
3. в выборке получать значения реквизитов текущие и подавать те же значения в параметры, еоторые не надо изменять |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Сб Апр 12, 2008 15:46   |
|
Полезность: Нет оценки
|
Можно. Код меняем следующим образом:
Код: |
procedure Dh_plastKart( P_DAT in [DATE] ) is
v_this ref [BIB_ENN071211];
begin
for (
select a
(
a.code : Code
, a%id : Id
)
in ::[BIB_ENN071211]
)
loop
v_this := a.Id;
if v_this = 66216403 then
v_this.[НАИМЕНОВАНИЕ_РЕКВИЗИТА]:='0123';
end if;
end loop;
end;
|
|
|
 |
German Профи
Вступление в Клуб: 25.06.2007
|
Сб Апр 12, 2008 21:44  Re: Обновлению записи таблицы |
|
Полезность: Нет оценки
|
Вопрос : Можно ли обновить не все поля, а только часть из них?
например значение поле '0123' оставить как было в таблице.
Emel, Ваша задача решается так:
Код: | begin
for x in ::[BIB_ENN071211] where x = 66216403 loop
x.[РЕКВИЗИТ_1] := ЗНАЧЕНИЕ_1;
x.[РЕКВИЗИТ_2] := ЗНАЧЕНИЕ_2;
end loop;
end; |
_________________ Homo homini |
|
 |
ggrey Участник со стажем
Вступление в Клуб: 01.10.2007
|
Пн Апр 14, 2008 09:47   |
|
Полезность: Нет оценки
|
Код: | update a(a.[РЕКВИЗИТ] = 'ЗНАЧЕНИЕ') in ::[BIB_ENN071211]
where a = 66216403; |
Так будет быстрее, если конечно тип не имеет предков (потомков) с этим же реквизитом. |
|
 |
Emel Участник со стажем
Вступление в Клуб: 02.07.2007
|
Вт Апр 15, 2008 10:57   |
|
Полезность: Нет оценки
|
Спасибо Всем !!!!! |
|
 |
|