|
|
|
Недостаточно сведений из основной таблицы для обновления
|
|||
|---|---|---|---|
|
#18+
Запрос такой: Me.Adodc1.RecordSource = "SELECT qqq.orgid,qqq.naim,qqq.inn,qqq.kpp,qqq.kol,qqq.mkod,qqq.dmin,qqq.dmax, a.ddog as mmm,b.ddog as nnn,user.mfio FROM (SELECT kuriershema.orgid as orgid,org.naim,org.inn,org.kpp,MIN(kuriershema.date1) as dmin,Max(kuriershema.date1) as dmax,count(kuriershema.id) as kol,d21.mkod,max(d3.mid) as maxmid FROM org LEFT JOIN kuriershema on kuriershema.orgid =org.id left join d3 on kuriershema.kurierid=d3.mid left join d21 on d3.mgni=d21.mid where kuriershema.date1=>ctod('" & ddate1 & "') and kuriershema.date1<=ctod('" & ddate2 & "') GROUP BY kuriershema.orgid,org.naim,org.inn,org.kpp,d21.mkod order by org.inn) qqq LEFT JOIN (SELECT id,COUNT(id) as ddog FROM reesdogv WHERE reesdogv.dover=2 GROUP BY id) a ON qqq.orgid=a.id LEFT JOIN (SELECT id,COUNT(id) as ddog FROM reesdogv WHERE reesdogv.dover=1 GROUP BY id) b ON qqq.orgid=b.id left join d3 on d3.mid=qqq.maxmid left join user on d3.muser=user.mid ORDER BY qqq.inn" мне надо обновить вычисляемое поле a.ddog as mmm , смысл задачи в таблице выводится куча полей в двух из них считается количество документов разных типов, вот то поле mmm - количество договоров с данной организацией. Что нужно, из этой формы , где исп-ся верхний запрос, открывается другая, где эти договора обновляются или удаляются. После тех исправлений нужно это поле mmm обновлять!!! Если я делаю requery то он выполняется долго, особенно по сети а если я пишу me.adodc1.recordset.fields('mmm').value=4 me.adodc1.update выскакивает ошибка указанная в названии темы форума. как обойти эту ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 12:12 |
|
||
|
Недостаточно сведений из основной таблицы для обновления
|
|||
|---|---|---|---|
|
#18+
уйти от ADODC и работать нормально через ADODB. тогда вы сами будете контролировать как и что апдейтить и селектить. PS скорее всего нет PK в исходном запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 12:48 |
|
||
|
Недостаточно сведений из основной таблицы для обновления
|
|||
|---|---|---|---|
|
#18+
PK ни при чем, этот запрос в целом и поле в частности необновляемы в принципе. Что сделать? Попробовать перестроить его так, чтобы не было конструкции select from (select). По смыслу она похожа на in (select), а in жутко тормозной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 13:19 |
|
||
|
Недостаточно сведений из основной таблицы для обновления
|
|||
|---|---|---|---|
|
#18+
А еще проще не строить один запрос, а сделать один (или несколько) темпов (курсоров, таблиц) только по условиям и ключам, а затем вытянуть нужные поля на основании результата... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 22:58 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2161768]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 400ms |

| 0 / 0 |
