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

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

Update на основе данных другой таблицы??? [IB6.x]


Страницы:   1 2

VadimKV ©   (2004-07-12 10:32:00) 

Как выполнить обновление таблицы на основе данных другой таблицы???
Подскажите можно ли в FireBird1.5 выполнить нечто похожее.
Или команду update можно выполнять накладываю условие проверки только на обновляемую таблицу.

update rdb$relation_fields
set rdb$null_flag = null,
   rdb$default_sourse =              
--(select --lf."name_table", lf."field_name",
   case lf."field_type"              --Это главный момент
   when    'alpha'     then    ''
   when    'number'    then    1
   when    'date'      then    '1.01.2004'
   else 'xxx'
   end
   from "list_fld" lf, rdb$relation_fields sys  --Ругается FB1.5 на этот from
where   (
           "field_lookup" is not null
           or "field_key" = '*'
           or "field_name" in
           (
           select "field_lookup" from "list_fld"
           where "field_lookup" is not null
           )
       )
       and
       (sys.rdb$relation_name = lf."name_table"
       and sys.rdb$field_name = lf."field_name")
--)


VadimKV   (2004-07-12 15:22:00) [21]

Стандартная конструкция:
Update <Таблица> set <поле1>='xxx'
where <условие>
<Условие> - накладывается только на Изменяюмую таблицу.

Я хочу:
Update<Таб1>
set<Таб1>.<поле 2>='xxx',
////////
   <Таб1>.<поле 3>=<Таб2>.<поле 5>
или
   <Таб1>.<поле 3>= case<Таб2>.<поле 5>
                        when'1' then'a'
                        when'2' then'b'
                        end
////////
where<Таб1>.<поле 1> = <Таб2>.<поле 1>

Такая вещь не прокатывает, потомучто <Таб2> должно быть описано после слова from. А конструкции Update <...> set <...> from ... в FB1.5 в отличии от MSSQL2000 нет.


Курдль   (2004-07-12 15:02:00) [22]


> Если кто знает как решить эту проблему просто подскажите.

КАКУЮ ПРОБЛЕМУ???
"Если Вы идете ко врачу - не озвучивайте свои предположения! Просто опишите симптомы!" (с)

Что Вы хотите автоматизировать, если не секрет?


VadimKV   (2004-07-12 14:59:00) [23]

Может кто нибудь знает как решить эту проблему через View.
Через View, я попытался, т.е. использовать update <Имя View> set <...>. Но View становится не модифицируемым при использовании таких средств как:
- подзапросы;
- агрегатных ф-ии;
- UDF;
- предложения Distinct, havingи д.р.
В книге все эти ограничения предлагают обойти через триггер. У меня не получилось.

Не знаю как можно написать, что серъёзное не обновляя данные таблицы на основе данных других таблиц. Не уже ли ни укого такой проблемы не было, товарищи Мастера?
Если кто знает как решить эту проблему просто подскажите.
Текст свих запросов не даю потомучто наверняка сложно будет сразу разобраться. Если кто попросит то покажу.
На сайте SQL.ru пока тоже тишина по этому вопросу.


Курдль   (2004-07-12 10:39:00) [24]


> Как выполнить обновление таблицы на основе данных другой
> таблицы???


А что надо сделать-то?


Соловьев   (2004-07-12 10:36:00) [25]

LocalSQL.hlp+UPDATE statement


Страницы:   1 2

Наверх

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