Changes between Version 9 and Version 10 of FDORfc50


Ignore:
Timestamp:
06/02/10 11:36:32 (14 years ago)
Author:
gregboone
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc50

    v9 v10  
    5656
    5757We should be able to select from multiple classes and have filters applied on any class attributes. In order to be able to achieve that we can use FdoISelect::!GetFeatureClassNames () and add all classes we want to select from. The filter must be based on properties from the selected classes and filter can be validated at run time when the whole select is built. In this collection we can have:
    58     * FdoIdentifier’s in case we just need to pass a class name.
    59     * !FdoComputedIdentifier’s having a name and as expression value a FdoIdentifier, this way we can get aliases, e.g. !PropName AS !NewPropName. We already use computed identifiers in our API for expressions and we provide a name and an expression value. In this case it will be the same, since an alias is actually an expression: we provide an alias (name) and the real name of the property.
     58    * !FdoIdentifier’s in case we just need to pass a class name.
     59    * !FdoComputedIdentifier’s having a name and as expression value an !FdoIdentifier, this way we can get aliases, e.g. !PropName AS !NewPropName. We already use computed identifiers in our API for expressions and we provide a name and an expression value. In this case it will be the same, since an alias is actually an expression: we provide an alias (name) and the real name of the property.
    6060    * !FdoClassComputedIdentifier’s which is a FdoISelect having a name. This option might not be supported by all RDBMS providers and it depends of the internal implementation. This class behaves like a computed class which will be evaluated at run time and really depends of the provider implementation. This new class will help to define sub-selects, see below case (C)
    6161
     
    210210
    211211
    212 === Handle Sub-selects ===
     212=== Handle Sub-Selects ===
    213213
    214214Below we define a new class to define sub-select used in the new select.
     
    247247
    248248In above case we will have two selects having following filters:
    249     * Main select: !FeatId IN(:SUBSEL)
    250     * Sub-select: pt.!FeatId >= 2 AND SPATIAL_COND(pt.GEOM, GEOM_VAL)
     249    Main select: !FeatId IN(:SUBSEL)
     250    Sub-select: pt.!FeatId >= 2 AND SPATIAL_COND(pt.GEOM, GEOM_VAL)
    251251
    252252Below we added some C++ code on how caller can use this new improvement to achieve above select statement: