Как воспользоваться таким сервисом, если мне нужно вставить запись идентичную текущей, но изменив значения одного-двух полей и, естественно, с другим идентификатором?
Пример:
ApplyDatasetFilter(DatasetMinuteness, 'ContractID', DataField.Value, true);
DatasetMinuteness.Open();
DatasetMinuteness.GoToFirst();
while (!DatasetMinuteness.IsEOF)
{
..........
DatasetMinuteness.GoToNext();
}
как написать вместо многоточия этот цикл? или может есть возможность обойтись без цикла?
вобщем суть отражает следующий запрос:
SELECT newid(), WorkingID, OfferingID, Count, Cost1, CostM, CurrencyID,'E534D2EF-F64B-440E-A836-9F0A33104DB0', Text2Add,TextShow, '10.11.2010', EndDate, Cost, TextShowID, NameOffering, Amount
FROM tbl_Minuteness
WHERE ContractID = '5581790A-40A7-4135-8477-382BD33ADB64'
в данном случае вставляется запись в которую подставляется новый идентификатор, новое значение поля ContractID и новое значение поля StartDate, а остальные поля должны вставиться неизменными.
Нравится
var InsertQuery = Services.GetNewItemByUSI('iq_InsertQuery'); InsertQuery.ColumnsValues.ItemsByName('ID').Value = Connector.GenGUID(); InsertQuery.ColumnsValues.ItemsByName('WorkingID').Value = DatasetMinuteness('WorkingID'); // прочие поля аналогично //------------ InsertQuery.Execute();
это если в цикле
ну в принципе можно хранимую процедуру написать и ее вызывать - будет быстрее точно и красиво
сервис InsertSelect можно попробовать... только имхо я бы просто написал через Insert и цикл, если критична производительность - хп
"Александр Кудряшов" написал:если критична производительность - хп
а если прям совсем-совсем критична, то триггер :smile: