Доброго вечера.
Есть запрос, общий вид такой:
UPDATE Base1
SET Base1.Field1 = XXX,
Base1.Field2 = (
SELECT Base2.Field1
FROM Base2
WHERE Base2.Field2 = YYY
),
Base1.Field3 = (
SELECT Base3.Field1
FROM Base3
WHERE Base3.Field2 = ZZZ
)
WHERE Base1.Field4 = (
SELECT Base4.Field1
FROM Base4
WHERE Base4.Field2 = WWW
)
AND Base1.Field5 = (
SELECT Base5.Field1
FROM Base5
WHERE Base5.Field2 = VVV
)
Т.е. обновляются 5 полей одной таблицы, согласно условиям из 4-ех связанных таблиц. Этот код корректно выполняется из под оснастки SQL Management Studio, но как только он выполняется из под 1с, он...не выполняется. Ошибок нет, но и в базу новые значения не пишутся.
Посмотрел в этой теме последнее сообщение:
v8: 1с + ADO - "Операция не допускается, если объект закрыт" - HELP!
и действительно, как только из секций SET и WHERE убираю по одному SELECT, запись происходит. Как только в секциях SET или WHERE становится более одного SELECT, ничего не пишется.
Попробовал через JOIN составить запрос, но ничего не пишется тоже.
Сам запрос такой:
UPDATE Base1
SET Base1.Field1 = XXX,
Base1.Field2 = Base2.Field1,
Base1.Field3 = Base3.Field1
FROM Base1
INNER JOIN Base2
ON Base1.Field2 = Base2.Field1
INNER JOIN Base3
ON Base1.Field3 = Base3.Field1
INNER JOIN Base4
ON Base1.Field4 = Base4.Field1
INNER JOIN Base5
ON Base1.Field5 = Base5.Field1
WHERE Base2.Field2 = YYY
AND Base3.Field2 = ZZZ
AND Base4.Field2 = WWW
AND Base4.Field2 = VVV
Т.е. нет возможности обновить стороннюю базу MSSQL, используя методы 1С?
Для записи пользуюсь ADODB.