From 101dc0fe8579bb11397e34ca16268db97fbf2a8c Mon Sep 17 00:00:00 2001 From: joost Date: Sat, 1 Apr 2006 14:58:11 +0000 Subject: [PATCH] + added check for empty dataset to TDataset.Delete + Updated comment regarding bookmarks and appending records git-svn-id: trunk@3109 - --- fcl/db/dataset.inc | 6 +++++- fcl/db/dbconst.pp | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) 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