View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006235 | JEDI VCL | 00 JVCL Components | public | 2013-12-04 12:56 | 2015-09-14 13:20 |
Reporter | Torbins | Assigned To | obones | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | Daily / GIT | ||||
Target Version | Fixed in Version | 3.48 | |||
Summary | 0006235: TJvMemoryData has unnecessary field | ||||
Description | TJvMemoryData.FAutoIncField can be safely removed. I have added a patch, to remove it. | ||||
Tags | No tags attached. | ||||
2013-12-04 12:56
|
JMD remove FAutoIncField.patch (3,000 bytes)
diff --git "a/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset - \320\232\320\276\320\277\321\226\321\217.pas" "b/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset.pas" index ad49617..35c96bc 100644 --- "a/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset - \320\232\320\276\320\277\321\226\321\217.pas" +++ "b/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset.pas" @@ -130,7 +130,6 @@ type FIndexList: TList; FCaseInsensitiveSort: Boolean; FDescendingSort: Boolean; - FAutoIncField: TField; FSrcAutoIncField: TField; FDataSet: TDataSet; FDataSetClosed: Boolean; @@ -1981,8 +1980,6 @@ begin begin Fields[I].Tag := Ord(Fields[I].ReadOnly); Fields[I].ReadOnly := False; - if Fields[I].DataType = ftAutoInc then - FAutoIncField := Fields[I]; end; end; @@ -2051,10 +2048,8 @@ begin MovedCount := MaxInt; end; - FinalAutoInc := 0; - FAutoIncField := nil; - // FixReadOnlyFields also sets FAutoIncField if there is any FixReadOnlyFields(False); + FinalAutoInc := 0; // find first source autoinc field FSrcAutoIncField := nil; if Mode = lmCopy then @@ -2070,7 +2065,7 @@ begin Append; AssignRecord(Source, Self, True); // assign AutoInc value manually (make user keep largest if source isn't sorted by autoinc field) - if (FAutoIncField <> nil) and (FSrcAutoIncField <> nil) then + if FSrcAutoIncField <> nil then begin FinalAutoInc := Max(FinalAutoInc, FSrcAutoIncField.AsInteger); FAutoInc := FSrcAutoIncField.AsInteger; @@ -2093,7 +2088,6 @@ begin FixReadOnlyFields(True); if Mode = lmCopy then FAutoInc := FinalAutoInc + 1; - FAutoIncField := nil; FSrcAutoIncField := nil; First; end; @@ -2523,7 +2517,6 @@ begin StatusField := FieldByName(FStatusName); FinalAutoInc := 0; - FAutoIncField := nil; // find first source autoinc field FSrcAutoIncField := nil; for I := 0 to FDataSet.FieldCount - 1 do @@ -2532,8 +2525,6 @@ begin FSrcAutoIncField := FDataSet.Fields[I]; Break; end; - if FSrcAutoIncField <> nil then - FAutoIncField := FindField(FSrcAutoIncField.FieldName); FDataSet.First; while not FDataSet.EOF do @@ -2559,7 +2550,7 @@ begin end; end; // assign AutoInc value manually (make user keep largest if source isn't sorted by autoinc field) - if (FAutoIncField <> nil) and (FSrcAutoIncField <> nil) then + if FSrcAutoIncField <> nil then begin FinalAutoInc := Max(FinalAutoInc, FSrcAutoIncField.AsInteger); FAutoInc := FSrcAutoIncField.AsInteger; |
2013-12-04 12:59
|
JMD remove FAutoIncField 2.patch (3,340 bytes)
diff --git "a/D:\\Components\\jvclg\\jvcl\\run\\JvMemoryDataset.pas" "b/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset.pas" index 0e7df31..35c96bc 100644 --- "a/D:\\Components\\jvclg\\jvcl\\run\\JvMemoryDataset.pas" +++ "b/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset.pas" @@ -130,7 +130,6 @@ type FIndexList: TList; FCaseInsensitiveSort: Boolean; FDescendingSort: Boolean; - FAutoIncField: TField; FSrcAutoIncField: TField; FDataSet: TDataSet; FDataSetClosed: Boolean; @@ -1981,8 +1980,6 @@ begin begin Fields[I].Tag := Ord(Fields[I].ReadOnly); Fields[I].ReadOnly := False; - if Fields[I].DataType = ftAutoInc then - FAutoIncField := Fields[I]; end; end; @@ -2051,10 +2048,8 @@ begin MovedCount := MaxInt; end; - FinalAutoInc := 0; - FAutoIncField := nil; - // FixReadOnlyFields also sets FAutoIncField if there is any FixReadOnlyFields(False); + FinalAutoInc := 0; // find first source autoinc field FSrcAutoIncField := nil; if Mode = lmCopy then @@ -2070,10 +2065,10 @@ begin Append; AssignRecord(Source, Self, True); // assign AutoInc value manually (make user keep largest if source isn't sorted by autoinc field) - if (FAutoIncField <> nil) and (FSrcAutoIncField <> nil) then + if FSrcAutoIncField <> nil then begin FinalAutoInc := Max(FinalAutoInc, FSrcAutoIncField.AsInteger); - FAutoInc := FSrcAutoIncField.AsInteger; //SetAutoIncFields will write this value to all fields with ftAutoInc + FAutoInc := FSrcAutoIncField.AsInteger; end; if (Mode = lmCopy) and (FApplyMode <> amNone) then FieldByName(FStatusName).AsInteger := Integer(rsOriginal); @@ -2093,7 +2088,6 @@ begin FixReadOnlyFields(True); if Mode = lmCopy then FAutoInc := FinalAutoInc + 1; - FAutoIncField := nil; FSrcAutoIncField := nil; First; end; @@ -2523,7 +2517,6 @@ begin StatusField := FieldByName(FStatusName); FinalAutoInc := 0; - FAutoIncField := nil; // find first source autoinc field FSrcAutoIncField := nil; for I := 0 to FDataSet.FieldCount - 1 do @@ -2532,8 +2525,6 @@ begin FSrcAutoIncField := FDataSet.Fields[I]; Break; end; - if FSrcAutoIncField <> nil then - FAutoIncField := FindField(FSrcAutoIncField.FieldName); FDataSet.First; while not FDataSet.EOF do @@ -2559,10 +2550,10 @@ begin end; end; // assign AutoInc value manually (make user keep largest if source isn't sorted by autoinc field) - if (FAutoIncField <> nil) and (FSrcAutoIncField <> nil) then + if FSrcAutoIncField <> nil then begin FinalAutoInc := Max(FinalAutoInc, FSrcAutoIncField.AsInteger); - FAutoInc := FSrcAutoIncField.AsInteger; //SetAutoIncFields will write this value to all fields with ftAutoInc + FAutoInc := FSrcAutoIncField.AsInteger; end; if FApplyMode <> amNone then StatusField.AsInteger := Integer(rsOriginal); |
|
I am not familiar with git, but second version of the patch should be better. |
|
I'm sorry, but your patch does not apply cleanly to the current GIT content because FinalAutoInc is nowhere to be seen. |
|
Sorry, this patch requires patch from http://issuetracker.delphi-jedi.org/view.php?id=6234 to be applied first. |
|
This is now in GIT |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-12-04 12:56 | Torbins | New Issue | |
2013-12-04 12:56 | Torbins | File Added: JMD remove FAutoIncField.patch | |
2013-12-04 12:59 | Torbins | File Added: JMD remove FAutoIncField 2.patch | |
2013-12-04 13:01 | Torbins | Note Added: 0020706 | |
2013-12-13 11:10 | obones | Status | new => acknowledged |
2013-12-13 16:13 | obones | Note Added: 0020832 | |
2013-12-13 16:13 | obones | Status | acknowledged => feedback |
2013-12-16 12:19 | Torbins | Note Added: 0020855 | |
2013-12-16 17:48 | obones | Status | feedback => acknowledged |
2013-12-18 15:42 | obones | Note Added: 0020883 | |
2013-12-18 15:42 | obones | Status | acknowledged => resolved |
2013-12-18 15:42 | obones | Fixed in Version | => Daily / GIT |
2013-12-18 15:42 | obones | Resolution | open => fixed |
2013-12-18 15:42 | obones | Assigned To | => obones |
2015-09-14 13:20 | obones | Fixed in Version | Daily / GIT => 3.48 |