Ну вот допустим есть запрос вида:
Код:
select Table1.Field1,Table2.Field1 from Table1 left join Table2 on Table1.ID=Table2.ID
Очевидно наш запрос необновляемый т.к. нет возможности однозначно определить скока и куда положить, а нам позарез надо в Table1 и Table2 положить значения.
Мы тогда вызываем хринимку:
Код:
AdoStoredProc1.ProcedureName := 'UpdateTable1Table2;1';
AdoStoredProc1.Parameters.ParamValues['ID'] := 1;
AdoStoredProc1.Parameters.ParamValues['Val1'] := 'Новое значение Table1Field1';
AdoStoredProc1.Parameters.ParamValues['Val2'] := 'Новое значение Table2Field1';
AdoStoredProc1.ExecProc;
а на сервере у нас есть хранимка:
Код:
create procedure UpdateTable1Table2(@ID int, @Val1 as varchar(50),@Val2 as varchar(50))
as
begin
update table Table1 set Field1=@Val1 where Id = @ID
update table Table2 set Field1=@Val2 where Id = @ID
end
Если не наврал с синтаксисом, то где-то так.