Описанные здесь проблемы почти все относятся к вопросу прав доступа.
При описанных здесь проблемах, как я понял, UPDATE не выполняется вообще.
У меня же, простые запросы типа "UPDATE Таблица SET [Поле]=Значение WHERE [№]=3" выполняются без проблем.
Проблема появилась именно тогда, когда я попытался применить вложенные запросы.
Сейчас я написал так:
Код:
ClientDataSet.CommandText:='UPDATE [Таблица1] SET [Количество]='+
'(SELECT SUM([Количество]) FROM [Таблица2] WHERE [Идентификатор]=:Id),'+
'[Сумма]=(SELECT SUM([Сумма]) FROM [Таблица2] WHERE [Идентификатор]=:Id) '+
'WHERE [Идентификатор]=:Id';
ClientDataSet.Params.Clear;
ClientDataSet.Params.Add;
ClientDataSet.Params[0].DataType:=ftWideString;
ClientDataSet.Params[0].Name:='Id';
ClientDataSet.Params[0].ParamType:=ptInputOutput;
ClientDataSet.Params[0].Size:=50;
ClientDataSet.Params.ParamByName('Id').AsString:=
ClientDataSet.FieldByName('Идентификатор').AsString;
ClientDataSet.Execute;
Теперь он мне другую ошибку выдаёт:
"Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена."
Если я правильно понимаю, структура запроса его больше не волнует.
Что же теперь не так?