|
@@ -2733,26 +2733,30 @@ begin
|
|
|
end;
|
|
|
|
|
|
procedure TCustomBufDataset.CreateDataset;
|
|
|
+var AStoreFilename: string;
|
|
|
+
|
|
|
begin
|
|
|
CheckInactive;
|
|
|
- if not ((FieldCount=0) or (FieldDefs.Count=0)) then
|
|
|
+ if ((FieldCount=0) or (FieldDefs.Count=0)) then
|
|
|
begin
|
|
|
- Open;
|
|
|
- Exit;
|
|
|
+ if (FieldDefs.Count>0) then
|
|
|
+ CreateFields
|
|
|
+ else if (fields.Count>0) then
|
|
|
+ begin
|
|
|
+ InitFieldDefsFromfields;
|
|
|
+ BindFields(True);
|
|
|
+ end
|
|
|
+ else
|
|
|
+ raise Exception.Create(SErrNoFieldsDefined);
|
|
|
end;
|
|
|
- if (FieldDefs.Count>0) then
|
|
|
- begin
|
|
|
- CreateFields;
|
|
|
- Open;
|
|
|
- end
|
|
|
- else if (fields.Count>0) then
|
|
|
- begin
|
|
|
- InitFieldDefsFromfields;
|
|
|
- BindFields(True);
|
|
|
+ // When a filename is set, do not read from this file
|
|
|
+ AStoreFilename:=FFileName;
|
|
|
+ FFileName := '';
|
|
|
+ try
|
|
|
Open;
|
|
|
- end
|
|
|
- else
|
|
|
- raise Exception.Create(SErrNoFieldsDefined);
|
|
|
+ finally
|
|
|
+ FFileName:=AStoreFilename;
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
function TCustomBufDataset.BookmarkValid(ABookmark: TBookmark): Boolean;
|
|
@@ -2772,8 +2776,12 @@ end;
|
|
|
procedure TCustomBufDataset.IntLoadFielddefsFromFile;
|
|
|
|
|
|
begin
|
|
|
+ FieldDefs.Clear;
|
|
|
FDatasetReader.LoadFielddefs(FieldDefs);
|
|
|
- if DefaultFields then CreateFields;
|
|
|
+ if DefaultFields then
|
|
|
+ CreateFields
|
|
|
+ else
|
|
|
+ BindFields(true);
|
|
|
end;
|
|
|
|
|
|
procedure TCustomBufDataset.IntLoadRecordsFromFile;
|