diff --git a/fcl/db/dataset.inc b/fcl/db/dataset.inc index e6aac9df62..729195f932 100644 --- a/fcl/db/dataset.inc +++ b/fcl/db/dataset.inc @@ -1209,10 +1209,11 @@ end; Procedure TDataset.Delete; - begin If Not CanModify then DatabaseError(SDatasetReadOnly,Self); + If IsEmpty then + DatabaseError(SDatasetEmpty,Self); if State in [dsInsert] then begin Cancel; @@ -1296,6 +1297,9 @@ Procedure TDataset.DoInsertAppend(DoAppend : Boolean); fBOF := false; // 29:01:05, JvdS: Why is this here?!? It can result in records with the same bookmark-data? // I would say that the 'internalinsert' should do this. But I don't know how Tdbf handles it + + // 1-apr-06, JvdS: It just sets the bookmark of the newly inserted record to the place + // where the record should be inserted. So it is ok. if FRecordcount > 0 then SetBookMarkData(ActiveBuffer,pointer(BookBeforeInsert)); end; diff --git a/fcl/db/dbconst.pp b/fcl/db/dbconst.pp index 276ab91620..fa88af598f 100644 --- a/fcl/db/dbconst.pp +++ b/fcl/db/dbconst.pp @@ -77,6 +77,7 @@ Const SUnsupportedFieldType = 'Fieldtype %s is not supported'; SInvPacketRecordsValue = 'PacketRecords has to be larger then 0'; SInvalidSearchFieldType = 'Searching in fields of type %s is not supported'; + SDatasetEmpty = 'The dataset is empty'; Implementation