FDO .NET API Reference Feature Data Objects

mgISelectAggregatesImp.h

Go to the documentation of this file.
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.