00001 #ifndef _IEXPRESSIONCAPABILITIES_H_
00002 #define _IEXPRESSIONCAPABILITIES_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifdef _WIN32
00023 #pragma once
00024 #endif
00025
00026 #include <FdoStd.h>
00027 #include <Fdo/Expression/ExpressionType.h>
00028 #include <Fdo/Connections/Capabilities/FunctionDefinitionCollection.h>
00029
00030
00031 #define FDO_FUNCTION_CEIL L"Ceil" // Returns the smallest integer greater than or equal to the expression value
00032 #define FDO_FUNCTION_FLOOR L"Floor" // Returns the largest integer equal to or less than the expression value
00033
00034
00035 #define FDO_FUNCTION_AVG L"Avg" // Returns the average value of an expression
00036 #define FDO_FUNCTION_COUNT L"Count" // Returns the number of objects in the query
00037 #define FDO_FUNCTION_MAX L"Max" // Returns the maximum value of an expression
00038 #define FDO_FUNCTION_MIN L"Min" // Returns the minimum value of an expression
00039 #define FDO_FUNCTION_SUM L"Sum" // Returns the sum of values of an expression
00040 #define FDO_FUNCTION_SPATIALEXTENTS L"SpatialExtents" // Returns the minimum bounding rectangle of a Geometry expression
00041
00042
00043
00044 #define FDO_FUNCTION_LOWER L"Lower" // Returns strings with all lowercase letters
00045 #define FDO_FUNCTION_UPPER L"Upper" // Returns strings with all letters uppercase
00046 #define FDO_FUNCTION_CONCAT L"Concat" // Returns the string concatenation of 2 expressions"
00047
00048
00049
00050
00051
00052 class FdoIExpressionCapabilities : public FdoIDisposable
00053 {
00054 protected:
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 FDO_API static FdoFunctionDefinitionCollection* GetWellKnownFunctions();
00065
00066 public:
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 FDO_API virtual FdoExpressionType* GetExpressionTypes(FdoInt32& length) = 0;
00077
00078
00079
00080
00081
00082
00083
00084 FDO_API virtual FdoFunctionDefinitionCollection* GetFunctions() = 0;
00085 };
00086 #endif
00087
00088