Browse Source

+ added check for empty dataset to TDataset.Delete
+ Updated comment regarding bookmarks and appending records

git-svn-id: trunk@3109 -

joost 19 years ago
parent
commit
101dc0fe85
2 changed files with 6 additions and 1 deletions
  1. 5 1
      fcl/db/dataset.inc
  2. 1 0
      fcl/db/dbconst.pp

+ 5 - 1
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;

+ 1 - 0
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