Changes between Version 8 and Version 9 of FDORfc50
- Timestamp:
- 06/02/10 11:33:30 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FDORfc50
v8 v9 62 62 We will use some SQL examples just to illustrate things we are trying to achieve, each RBDMS-based provider will translate FDO selects in server side SQL depending of the server capabilities. 63 63 64 ''SELECT * FROM class1 AS p1, class2 AS p2 WHERE p1.ID=p2.!FeatId AND SPATIAL_COND(p1.GEOM, GEOM_VAL);''64 ''SELECT * FROM class1 AS p1, class2 AS p2 WHERE p1.ID=p2.!FeatId AND SPATIAL_COND(p1.GEOM, GEOM_VAL);'' 65 65 66 66 Below we added some C++ code on how caller can use this new improvement to achieve above select statement: … … 84 84 }}} 85 85 86 ''N ote:'' In the base class we have a method named !GetFeatureClassName, in case caller will use it and the !FdoIdentifier is not added into !GetFeatureClassNames we can add it at Execute time.86 ''NOTE:'' In the base class we have a method named !GetFeatureClassName, in case caller will use it and the !FdoIdentifier is not added into !GetFeatureClassNames we can add it at Execute time. 87 87 88 88 === Handling Joins === … … 179 179 Join criteria will be used to generate join SQL commands, like: 180 180 181 ''SELECT p.!FeatId AS xFID,p.Geometry,pxy.Name,pxy.X,pxy.Y,pex.NameB,pex.Link FROM p ''[[BR]]182 ''INNER JOIN pxy ON(p.!FeatId = pxy.!FeatId)''[[BR]]183 ''INNER JOIN pex ON(pex.FID = pxy.!FeatId)''[[BR]]184 ''WHERE p.!FeatId >= 0;''[[BR]]181 ''SELECT p.!FeatId AS xFID,p.Geometry,pxy.Name,pxy.X,pxy.Y,pex.NameB,pex.Link FROM p ''[[BR]] 182 ''INNER JOIN pxy ON(p.!FeatId = pxy.!FeatId)''[[BR]] 183 ''INNER JOIN pex ON(pex.FID = pxy.!FeatId)''[[BR]] 184 ''WHERE p.!FeatId >= 0;''[[BR]] 185 185 186 186 Below we added some C++ code on how caller can use this new improvement to achieve above select statement: … … 244 244 Named sub-select will be used to generate SQL commands, like: 245 245 246 ''SELECT * FROM point WHERE !FeatId IN (SELECT pt.!FeatId FROM pt WHERE pt.!FeatId >= 2 AND SPATIAL_COND(pt.GEOM, GEOM_VAL));''246 ''SELECT * FROM point WHERE !FeatId IN (SELECT pt.!FeatId FROM pt WHERE pt.!FeatId >= 2 AND SPATIAL_COND(pt.GEOM, GEOM_VAL));'' 247 247 248 248 In above case we will have two selects having following filters: