View Issue Details

IDProjectCategoryView StatusLast Update
0007157FPCDatabasepublic2012-04-05 10:02
ReporterMartin SchreiberAssigned ToJoost van der Sluis 
PrioritynormalSeverityminorReproducibilityalways
Status feedbackResolutionopen 
Product Version2.0.4Product Build 
Target VersionFixed in Version 
Summary0007157: InternalCalcFields are not implemented
DescriptionInternalCalcFields are not implemented in FPC database environment.
They are needed to hold intermediate table data, selected row state for example.
TagsNo tags attached.
Fixed in Revision
FPCOldBugId0
FPCTarget
Attached Files
  • internalcalc.txt (3,770 bytes)
    FPC:
    ****
    /home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/dataset.inc(228,37):     if aField.FieldKind in [fkData, fkInternalCalc] then
    /home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/db.pas(228,49):   TFieldKind = (fkData, fkCalculated, fkLookup, fkInternalCalc);
    /home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/fields.inc(394,28):   if FieldKind in [fkData, fkInternalCalc] then
    /home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/fields.inc(540,37):     Result := FieldKind in [fkData, fkInternalCalc];
    /home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/fields.inc(3132,30):   FValidFieldKinds:=[fkData..fkInternalcalc];
    /home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/sdf/sdfdata.pp(679,27):     if Field.FieldKind <> fkInternalCalc then
    
    MSEgui:
    *******
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(1129,45):        //calls checkbrowsemode, writing for fkInternalCalc only, 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(2690,22):      if (fieldkind = fkinternalcalc) and (defaultexpression <> '') then begin
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(2853,5):     fkinternalcalc: begin
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(2978,29):         (afield.fieldkind = fkinternalcalc) and 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(4088,19):    if fieldkind = fkinternalcalc then begin
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(4119,19):    if fieldkind = fkinternalcalc then begin
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6746,26):  if (afield.fieldkind <> fkinternalcalc) then begin
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6747,63):   raise ecurrentvalueaccess.create(self,afield,'Field must be fkInternalCalc.');
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6770,26):  if (afield.fieldkind <> fkinternalcalc) then begin
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6771,63):   raise ecurrentvalueaccess.create(self,afield,'Field must be fkInternalCalc.');
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(9134,35):      if not((fieldkind in [fkdata,fkinternalcalc]) or 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(1312,48):  allfieldkinds = [fkData,fkCalculated,fkLookup,fkInternalCalc];
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(4155,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(4353,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(4873,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(5147,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(5825,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(8039,39):    bo1:= (field1.fieldkind in [fkdata,fkinternalcalc]) and
    /home/mse/packs/standard/git/mseide-msegui/lib/common/ifi/mseifids.pas(1694,28):        (afield.fieldkind = fkinternalcalc) and 
    /home/mse/packs/standard/git/mseide-msegui/lib/common/ifi/mseifids.pas(2445,40):   if TField(Info).FieldKind in [fkData,fkInternalCalc] then begin
    /home/mse/packs/standard/git/mseide-msegui/lib/common/regcomponents/regdb.pas(1202,41):                   (fieldkind in [fkdata,fkinternalcalc,fklookup]) then begin
    internalcalc.txt (3,770 bytes)

Relationships

related to 0007295 closedJoost van der Sluis TBufDataset in dsCalcFields state 

Activities

Marco van de Voort

2012-03-17 12:14

manager   ~0057759

Afaik they are now?

Martin Schreiber

2012-04-05 10:01

reporter   ~0058311

AFAIK no, fkCalculated <> fkInternalCalc.
A search for fkInternalCalc shows: (see attachment FPC).
An implementation would look like this: (see attachment MSEgui).

2012-04-05 10:02

 

internalcalc.txt (3,770 bytes)
FPC:
****
/home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/dataset.inc(228,37):     if aField.FieldKind in [fkData, fkInternalCalc] then
/home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/db.pas(228,49):   TFieldKind = (fkData, fkCalculated, fkLookup, fkInternalCalc);
/home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/fields.inc(394,28):   if FieldKind in [fkData, fkInternalCalc] then
/home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/fields.inc(540,37):     Result := FieldKind in [fkData, fkInternalCalc];
/home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/base/fields.inc(3132,30):   FValidFieldKinds:=[fkData..fkInternalcalc];
/home/mse/packs/standard/svn/fp/fixes_2_6/packages/fcl-db/src/sdf/sdfdata.pp(679,27):     if Field.FieldKind <> fkInternalCalc then

MSEgui:
*******
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(1129,45):        //calls checkbrowsemode, writing for fkInternalCalc only, 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(2690,22):      if (fieldkind = fkinternalcalc) and (defaultexpression <> '') then begin
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(2853,5):     fkinternalcalc: begin
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(2978,29):         (afield.fieldkind = fkinternalcalc) and 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(4088,19):    if fieldkind = fkinternalcalc then begin
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(4119,19):    if fieldkind = fkinternalcalc then begin
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6746,26):  if (afield.fieldkind <> fkinternalcalc) then begin
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6747,63):   raise ecurrentvalueaccess.create(self,afield,'Field must be fkInternalCalc.');
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6770,26):  if (afield.fieldkind <> fkinternalcalc) then begin
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(6771,63):   raise ecurrentvalueaccess.create(self,afield,'Field must be fkInternalCalc.');
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msebufdataset.pas(9134,35):      if not((fieldkind in [fkdata,fkinternalcalc]) or 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(1312,48):  allfieldkinds = [fkData,fkCalculated,fkLookup,fkInternalCalc];
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(4155,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(4353,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(4873,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(5147,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(5825,28):   if (fieldkind in [fkdata,fkinternalcalc]) and 
/home/mse/packs/standard/git/mseide-msegui/lib/common/db/msedb.pas(8039,39):    bo1:= (field1.fieldkind in [fkdata,fkinternalcalc]) and
/home/mse/packs/standard/git/mseide-msegui/lib/common/ifi/mseifids.pas(1694,28):        (afield.fieldkind = fkinternalcalc) and 
/home/mse/packs/standard/git/mseide-msegui/lib/common/ifi/mseifids.pas(2445,40):   if TField(Info).FieldKind in [fkData,fkInternalCalc] then begin
/home/mse/packs/standard/git/mseide-msegui/lib/common/regcomponents/regdb.pas(1202,41):                   (fieldkind in [fkdata,fkinternalcalc,fklookup]) then begin
internalcalc.txt (3,770 bytes)

Issue History

Date Modified Username Field Change
2006-07-14 11:37 Martin Schreiber New Issue
2006-07-14 23:23 Florian Status new => assigned
2006-07-14 23:23 Florian Assigned To => Joost van der Sluis
2006-10-18 10:22 Marco van de Voort Old bug id => 0
2006-10-18 10:22 Marco van de Voort Category FCL => Database Components
2007-01-01 21:29 Joost van der Sluis Relationship added related to 0007295
2012-03-17 12:14 Marco van de Voort Note Added: 0057759
2012-03-17 12:14 Marco van de Voort Status assigned => feedback
2012-04-05 10:01 Martin Schreiber Note Added: 0058311
2012-04-05 10:02 Martin Schreiber File Added: internalcalc.txt