Страница 1 из 1

сдклать update по view

Добавлено: 11 сен 2008, 16:53
galover
Можно ли сделайть update для именованной вьюхи.

Скажем есть view

Код: Выделить всё

create view tView as select * from spsopr, basedoc
где-то в коде нужно внести изменения в БД

Код: Выделить всё

tView._loop spSopr
{
   if (tView.SpSopr.Nodok == ....)
     update tView.SpSopr set ... // здесь нужно проапдейтить данные SpSopr-a
}
я могу конечно создать дефолтную view и уже по ней делать изменения в SpSopr-е, т.е.

Код: Выделить всё

create view as select * from SpSopr;
tView._loop spSopr
{
   if (tView.SpSopr.Nodok == ....)
     update SpSopr where ((tView.SpSopr.NRec == SpSopr.NRec)) set ... // здесь нужно проапдейтить данные SpSopr-a
}
но хочется это сделать именно по конкретной view, чтобы и изменения сразу стали доступны в этий tView. Спасибо!

Добавлено: 11 сен 2008, 17:20
Den
Именованная вью имли нет - в принципе это не важно

tview.spsopr.myfield:=...
tview.update current spsopr

Для облегчения нельзя что ли в дефаултной view переопределить spsopr в секции from под элиасом и работать с ним, как обычно ...или у Вас такой сложный алгоритм.

Добавлено: 11 сен 2008, 18:34
galover
Den
Спасибо! :cool:

не знал про такой синтаксис, все писал по привычке

update current tView.SpSopr set...
Для облегчения нельзя что ли в дефаултной view переопределить spsopr в секции from под элиасом и работать с ним, как обычно ...или у Вас такой сложный алгоритм.
да мне не нужен отдельный SpSopr, я с этой таблицей работаю исключительно через view, поэтому вообще хотел уйти от неименованной вьюхи

Добавлено: 11 сен 2008, 19:55
Den
galover писал(а):Спасибо! :cool:
Пожалуйста :)
galover писал(а): да мне не нужен отдельный SpSopr, я с этой таблицей работаю исключительно через view, поэтому вообще хотел уйти от неименованной вьюхи
Ну Вам виднее..видимо действительно для чего то нужно )