Есть два датасета (точнее их море), один родительский второй дочерний связь как обычно по полю (master-detail), последнее время получается при выполнении DetailDataset.Append происходит непонятный Post, начал рыть в чём проблема упёрся вот в это место
- Код: Выделить всё
- procedure TZAbstractDataset.InternalAddRecord(Buffer: Pointer; Append: Boolean);
 var
 RowNo: Integer;
 RowBuffer: PZRowBuffer;
 begin
 if not GetActiveBuffer(RowBuffer) or (RowBuffer <> Buffer) then
 raise EZDatabaseError.Create(SInternalError);
 if Append then
 FetchRows(0);
 if CachedResultSet <> nil then
 begin
 CachedResultSet.MoveToInsertRow;
 RowAccessor.RowBuffer := RowBuffer;
 PostToResultSet(CachedResultSet, FieldsLookupTable, Fields, RowAccessor);
 try
 CachedResultSet.InsertRow;//место генерирования исключения
 except on E: EZSQLThrowable do
 raise EZDatabaseError.CreateFromException(E);
 end;
 RowNo := CachedResultSet.GetRow;
 FetchCount := FetchCount + 1;
 { Filters the row }
 if FilterRow(RowNo) then
 begin
 if Append then
 begin
 CurrentRows.Add(Pointer(RowNo));
 CurrentRow := CurrentRows.Count;
 end
 else
 begin
 CurrentRow := Max(CurrentRow, 1);
 CurrentRows.Insert(CurrentRow - 1, Pointer(RowNo));
 end;
 end;
 end;
 end;
место генерирования исключения отмечено комментарием, генерируется исключение на required поля, потому что при вставке строки в датасет он пытается выполнить Post, не пойму почему так, причём данная особенность проявляется именно у этого датасета и ни у какого более, помогите понять в чём может быть проблема...
p.s. CachedUpdates не используется, все остальные свойства датасета по дефолту


