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

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

Update со вложеным запросом [D6, Paradox]


prof ©   (2003-05-13 07:25:00) 

Доброго всем времени дня.
Вопрос уже задавался, но я рискну еще раз
Вопрос такой:
при выполнении запроса update temp_oper set парт=(select max(proiz_part.парт)from proiz_part)
выдается ошибка: Invalid use of keyword
и Token:=(select
во вложеном запросе поле ПАРТимеет тип счетчика.

Может кто знает в чем дело, помогите если можете?


ЮЮ   (2003-05-14 03:56:00) [1]

Invalid use of keyword - это ошибка синтаксиса запроса и не зависит от типа поля.

>но еслиберу из тойже таблицы поле типа NUMBER все катит
а какого типа парт в temp_oper? А <счетчик> имеет тип Long Integer. При несоответствии типов должно быть Type mosmatch ... а не Invalid use of keyword


prof   (2003-05-13 09:52:00) [2]

но еслиберу из тойже таблицы поле типа NUMBER все катит


ЮЮ   (2003-05-13 09:42:00) [3]

Ну и что? Разве select max(<счетчик>) from Table - это криминал?


prof   (2003-05-13 09:38:00) [4]

да теперь дошло проблема в том что поле парт в proiz_part имеет тип счетчика


ЮЮ   (2003-05-13 09:28:00) [5]

Запусти свой запрос в SQL Explorer. У меня он работает. Возможно запрос формируется динамически и содержит совсем не то, что ты приводишь


prof   (2003-05-13 09:24:00) [6]

в таблице proiz_part несколько партий и во вложенном запросе выбирается последний номер те номер последней по списку партии

VAleksey ©

>оно не должно и не будет обновляться !!!
>с этого и надо было начинать

и что имелось ввиду


ЮЮ   (2003-05-13 09:17:00) [7]

>VAleksey © (13.05.03 09:13)
во вложенном


VAleksey   (2003-05-13 09:13:00) [8]


> во вложеном запросе поле ПАРТ имеет тип счетчика.

оно не должно и не будет обновляться !!!
с этого и надо было начинать.


ЮЮ   (2003-05-13 08:55:00) [9]

>нужно порядковый номер партии одноговида продукции

ну и где в запросе приутствует одного вида продукции? Он ищет максимальное значение парт во всей таблицеproiz_part
и это значение проставляет всем записям таблицыtemp_oper


prof   (2003-05-13 08:28:00) [10]

обьясняю нужно порядковый номер партии одноговида продукции
передать списку операций из которых этот продукт состоит , те. у каждой строки с операцией должон быть номер партии


ЮЮ   (2003-05-13 08:22:00) [11]

Не поленился, создал таблицы. Твой запрос нормально работает.
Может ты его привёл не полностью?

Правда его смысл совсем не понятен. Зачем нужна таблица с одной записью. А если их много, то зачем всем присваивать одно и то же значение.


ЮЮ   (2003-05-13 08:09:00) [12]

Ну не знаю. У меня на таблицах с нормальными названиями полей всё работает.


prof   (2003-05-13 08:04:00) [13]

нето уже робовал


ЮЮ   (2003-05-13 07:56:00) [14]

Хотя и так работает. Может поля из русских букв взять в кавычки?


prof   (2003-05-13 07:53:00) [15]

неа выдает уже type mismatch in expression


Alexandr   (2003-05-13 07:47:00) [16]

хитрый BDE, однако...


ЮЮ   (2003-05-13 07:38:00) [17]

update temp_oper set парт= 0 +(select max(proiz_part.парт)from proiz_part)


Наверх

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