|
|
|
ошибка от ADO - недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
Есть два почти одинаковых запроса 1) select t.iTovID,v.iVidNo,t.iTovNO,t.cTovName from dbo.m_vid as v inner join dbo.m_tv as t on t.iVidID=v.iVidID inner join dbo.tvotdost as t_o on t.iTovID=t_o.iTovID where t_o.iOtdID=@iOtdID 2) select t.iTovID,v.iVidNo,t.iTovNO,t.cTovName from dbo.m_vid as v inner join dbo.m_tv as t on t.iVidID=v.iVidID inner join dbo.tvotdost2 as t_o on t.iTovID=t_o.iTovID where t_o.iOtdID=@iOtdID Отличаются они тем, что в первом tvotdost - это индексированное view, а во втором tvotdost2 - это таблица с аналогичными столбцами. На основе обоих создается Recordset на стороне клиента, в первом случае при редактирование cTovName получаем от Microsoft Cursor Engine ошибку "недостаточно сведений ключевого поля для обновления" NativeError=1007, Numdber=-2147467259, а во втором случае ошибки нет. Далее, убираем из результатов первого запроса столбец v.iVidNo, и наблюдаем чудесное исчезновение ошибки - условия выборки не поменялись, но ключевого поля стало хватать :)) Вопрос №1: почему это так? Вопрос N2: есть ли способ заставить Recordset работать с первым запросом? Очень бы хотелось:(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:45 |
|
||
|
|

start [/forum/topic.php?fid=17&tid=1353783]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 328ms |

| 0 / 0 |
