RefreshRecord & DataSet.BeforePost
Posted: Mon 20 Sep 2010 06:09
сохраняю данные в БД на dataset.BeforePost
[code]
// начинаем транзакцию
DbMs.TransactionStart;
try
// модифицируем данные
with
DbMs.StoredProcExecute
(
'dbo.spDocumentsItemsModify',
[
DbMsParameter('DocumentId', HeaderQuery['DocumentId']),
DbMsParameter('Data', TMsQuery(DataSet).RecordToXml)
]
)
do
begin
// обновляем данные
with TMsQuery(DataSet) do
begin
FieldValues['ItemId'] := StoredProc['ItemId'];
RefreshRecord;
end;
end;
// обновляем заголовок
HeaderQuery.RefreshRecord;
// фиксируем транзакцию
DbMs.TransactionCommint;
except
// откатываем транзакцию
DbMs.TransactionRollback;
// откатываем изменения
DataSet.Cancel;
raise;
end;
[/code]
если вызывать RefreshRecord то в наборе данных появляется дубликат записи а не обновляется текущая, что я делаю не так ?
sdac 5.0
[code]
// начинаем транзакцию
DbMs.TransactionStart;
try
// модифицируем данные
with
DbMs.StoredProcExecute
(
'dbo.spDocumentsItemsModify',
[
DbMsParameter('DocumentId', HeaderQuery['DocumentId']),
DbMsParameter('Data', TMsQuery(DataSet).RecordToXml)
]
)
do
begin
// обновляем данные
with TMsQuery(DataSet) do
begin
FieldValues['ItemId'] := StoredProc['ItemId'];
RefreshRecord;
end;
end;
// обновляем заголовок
HeaderQuery.RefreshRecord;
// фиксируем транзакцию
DbMs.TransactionCommint;
except
// откатываем транзакцию
DbMs.TransactionRollback;
// откатываем изменения
DataSet.Cancel;
raise;
end;
[/code]
если вызывать RefreshRecord то в наборе данных появляется дубликат записи а не обновляется текущая, что я делаю не так ?
sdac 5.0