FDO .NET API Reference | Feature Data Objects |
00001 /* 00002 * Copyright (C) 2004-2006 Autodesk, Inc. 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of version 2.1 of the GNU Lesser 00006 * General Public License as published by the Free Software Foundation. 00007 * 00008 * This library is distributed in the hope that it will be useful, 00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 * Lesser General Public License for more details. 00012 * 00013 * You should have received a copy of the GNU Lesser General Public 00014 * License along with this library; if not, write to the Free Software 00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00016 * 00017 */ 00018 00019 #pragma once 00020 00021 #include "FDO\Commands\Feature\mgIBaseSelectImp.h" 00022 #include "FDO\Commands\Feature\mgISelectAggregates.h" 00023 00024 class FdoISelectAggregates; 00025 00026 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS 00027 public __gc class IdentifierCollection; 00028 END_NAMESPACE_OSGEO_FDO_COMMANDS 00029 00030 BEGIN_NAMESPACE_OSGEO_FDO_FILTER 00031 public __gc class Filter; 00032 END_NAMESPACE_OSGEO_FDO_FILTER 00033 00034 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE 00035 public __gc __interface IDataReader; 00036 00037 /// \ingroup (OSGeoFDOCommandsFeature) 00038 /// \brief 00039 /// The ISelectAggregateImp class is a cocrete implementation of interface ISelectAggregates. 00040 /// The ISelectAggregate interface defines a Select command that handle selection of properties that include 00041 /// the use of aggregate functions. This command differs from the ISelect command in a number of ways. 00042 /// It handles selection of properties that are aggregate functions and supports selecting distinct property values. 00043 /// It also includes grouping criteria. The execute method returns an IDataReader which is not tied to a specific class. 00044 /// Unlike Select, ISelectAggregate does not include any locking functions. 00045 private __gc class ISelectAggregatesImp : public NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IBaseSelectImp, 00046 public NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::ISelectAggregates 00047 { 00048 public: 00049 /// \brief 00050 /// Executes the select command and returns a reference to an IDataReader. 00051 /// 00052 /// \return 00053 /// Returns the data reader. 00054 /// 00055 NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IDataReader* Execute(); 00056 00057 /// \brief 00058 /// Set the distinct option of the selection. 00059 /// Non-simple properties such as object properties, geometry properties, raster properties, association properties, etc. will not be supported with Distinct. 00060 /// 00061 /// \param value 00062 /// true or false; when set to true, only distinct values are returned. Otherwise all values are returned 00063 /// 00064 /// \return 00065 /// Returns nothing 00066 /// 00067 /// Note: Grouping criteria is not supported with Distinct. 00068 __property System::Void set_Distinct(System::Boolean value); 00069 00070 /// \brief 00071 /// Get the distinct option. 00072 /// 00073 /// \return 00074 /// Returns true if distinct is set, false otherwise. 00075 /// 00076 __property System::Boolean get_Distinct(); 00077 00078 /// \brief 00079 /// Gets the IdentifierCollection that holds the list of group by property names. If empty no grouping is used. This list is initially 00080 /// empty and the caller need to add the property that the command should use as a group by criteria. No LOB or Geometry type properties 00081 /// can be used for ordering. 00082 /// 00083 /// \return 00084 /// Returns the list of group by property names. 00085 /// 00086 __property NAMESPACE_OSGEO_FDO_COMMANDS::IdentifierCollection* get_Grouping(); 00087 00088 /// \brief 00089 /// Set the grouping by filter. Use the grouping filter to restrict the groups of returned properties to those groups for 00090 /// which the specified filter is TRUE. For example "order by city" and "min(lanes) = 2". The Filter have to evalute to a 00091 /// binary value(true or false). 00092 /// 00093 /// \param filter 00094 /// The grouping filter. 00095 /// 00096 /// \return 00097 /// Returns nothing 00098 /// 00099 __property System::Void set_GroupingFilter(NAMESPACE_OSGEO_FDO_FILTER::Filter* filter); 00100 00101 /// \brief 00102 /// Gets the grouping by filter. 00103 /// 00104 /// \return 00105 /// Returns the grouping filter. 00106 /// 00107 __property NAMESPACE_OSGEO_FDO_FILTER::Filter* get_GroupingFilter(); 00108 00109 public private: 00110 ISelectAggregatesImp(System::IntPtr unmanaged, System::Boolean autoDelete) : NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IBaseSelectImp(unmanaged, autoDelete) 00111 { 00112 00113 } 00114 00115 inline FdoISelectAggregates* GetImpObj(); 00116 }; 00117 00118 END_NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE 00119 00120
Comments or suggestions? Send us feedback. |