![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
update sql с подзапросом
nod © (2007-04-19 15:00:00)ADOQuery1.SQL.Text:='update base set fond005 = (select sum(pension.summa) from pension where
pension.cex=1 group by pension.cex) ';
ошибка - в операции должен использоваться обновляемый запрос
поясните из-за чего такая ошибка? проверял селект выводит только одну строку
nod (2007-04-19 16:05:00) [1]еще вопрос как написать, что бы в предыдущем запросе
set base.pension = pension.summa'; было не pension.summa, а sum(pension.summa) group by cex
nod (2007-04-19 15:37:00) [2]спасибо за помощь.
пришлось обойти проблему так
ADOQuery1.SQL.Text:='update base left join pension on base.cex=pension.cex set base.pension = pension.summa';
но думаю я к ней еще вернусь
sniknik (2007-04-19 15:33:00) [3]В операции должен использоваться обновляемый запрос. (Ошибка 3073)
Попытка запустить, открыть или изменить запрос, который не является обновляемым.
Возможные причины:
Попытка запустить запрос, в котором предпринимается попытка обновить необновляемое поле. Например, создан запрос, в котором предпринимается попытка обновить поле на стороне «один» отношения «один-ко-многим».
Попытка использовать устаревший метод OpenQueryDef для запроса, находящегося в базе данных, открытой с доступом только для чтения.
База данных может быть доступной только для чтения по одной из следующих причин:
База данных была открыта только для чтения с помощью метода OpenDatabase или элемента управления Data Visual Basic.
Файл базы данных определен с доступом только для чтения в сетевой операционной системе.
Пользователь не имеет привилегий записи в этот файл базы данных в сетевой среде.
Закройте базу данных, снимите ограничение доступа только для чтения и вновь откройте файл с доступом для чтения/записи.
Отсутствуют разрешения на внесение изменений в запрос. Для изменения разрешений обратитесь к системному администратору или создателю таблицы или запроса.
nod (2007-04-19 15:28:00) [4]к сожалению нет, а запрос написан просто для теста, но даже он не работает... собственно сами подзапросы при update уменя не работают, одна и таже ошибка постоянно
sniknik (2007-04-19 15:28:00) [5]> в операции должен использоваться обновляемый запрос
по какойто причине (могут быть разные) jet считает, что запись ведется в ридонли таблицу... (группировка одной + обьеденение с другой тоже может посчитать что обе нередактируемые)
> проверял селект выводит только одну строку
зачем тогда группировка? убери
Sergey13 (2007-04-19 15:18:00) [6]> [0] nod © (19.04.07 15:00)
А тебе надо во все записи base посадить одно и то-же число?
nod (2007-04-19 15:10:00) [7]ADOQuery1.execsql;
базы dbase
Sergey13 (2007-04-19 15:03:00) [8]> [0] nod © (19.04.07 15:00)
Ты случаем не ADOQuery1.Open делаешь?