If you have an open TDAMemDataTable which has no records, and you call Edit, it actually inserts a new record and the table is then in dsInsert state.
Admittedly my fault for trying to edit a record which didn’t exist but I’d expect Edit to throw an exception in this instance, not just quietly decide to insert instead.