Я делаю тест с приложением Delphi DataSnap REST. Я попробовал этот учебник из Embarcadero, и он работает для простой таблицы и один SQL-запрос соединения.
// образец простой таблицы
V001.SQL.Text := 'Select * from T001 where K010=:XK010';
// один запрос на соединение
V001.SQL.Text :=
'SELECT T001.K001 AS K001, T001.K010 AS K010, '
+ 'T001.F001 AS F001, T010.F001 AS F002 '
+ 'T001.F001 AS F001, T010.F001 AS F002 '
+ 'FROM T001 LEFT JOIN T010 ON T001.K010 = T010.K010 '
+ 'WHERE T001.K010=:XK010 '
+ 'ORDER BY T001.F001';
Теперь я начинаю пробовать этот пример с двумя запросами на объединение и получаю ошибку в процедуре ApplyUpdates.
// two joins query
V001.SQL.Text :=
'SELECT T001.K001 AS K001, T010.F002 AS T010F002, '
+ 'T016.F002 AS T016F002, '
+ 'T001.F001 AS F001, T001.K010 AS K010, T001.K016 AS K016 '
+ 'FROM ((T001 LEFT JOIN T010 ON T001.K010 = T010.K010) '
+ ' LEFT JOIN T016 ON T001.K016 = T016.K016) '
+ 'WHERE T001.K010=:XK010 '
+ 'ORDER BY T001.F001';
procedure TServerMethods1.ApplyChangesSupplierProduct(const ADeltaList: TFDJSONDeltas);
var
LApply: IFDJSONDeltasApplyUpdates;
sText: String;
begin
// Create the apply object
LApply := TFDJSONDeltasApplyUpdates.Create(ADeltaList);
// Apply the supplier delta
LApply.ApplyUpdates(myJoinQuery, V001.Command);
if LApply.Errors.Count > 0 then
// Raise an exception if any errors.
raise Exception.Create(LApply.Errors.Strings.Text);
end;
В моем примере SQL с двумя соединениями, показанном выше, ошибка возникает в строке LApply.ApplyUpdates(myJoinQuery, V001.Command)
.
Пожалуйста, дайте мне несколько советов о том, как получить эту работу или мне нужно подготовить V001.Command
самостоятельно и как.
Заранее спасибо.