/* xbfilter.h XBase64 Software Library Copyright (c) 1997,2003,2014,2022 Gary A Kunkel The xb64 software library is covered under the terms of the GPL Version 3, 2007 license. Email Contact: XDB-devel@lists.sourceforge.net XDB-users@lists.sourceforge.net This class manages the user data area (UDA) */ #ifndef __XB_XBFILTER_H__ #define __XB_XBFILTER_H__ #ifdef CMAKE_COMPILER_IS_GNUCC #pragma interface #endif #ifdef XB_FILTER_SUPPORT namespace xb{ //#ifdef XB_INDEX_SUPPORT //class XBDLLEXPORT xbIx; //#endif // XB_INDEX_SUPPORT class XBDLLEXPORT xbFilter { public: xbFilter( xbDbf *dbf ); ~xbFilter(); xbInt16 Set( xbString &sFilterExpression ); xbInt16 Set( const char *sFilterExpression ); xbInt16 GetFirstRecord( xbInt16 iOpt = 1 ); xbInt16 GetNextRecord ( xbInt16 iOpt = 1 ); xbInt16 GetPrevRecord ( xbInt16 iOpt = 1 ); xbInt16 GetLastRecord ( xbInt16 iOpt = 1 ); void SetLimit( xbInt32 ulLimit ); xbInt32 GetLimit() const; void ResetQryCnt(); xbInt32 GetQryCnt() const; #ifdef XB_INDEX_SUPPORT xbInt16 GetFirstRecordIx( xbInt16 iOpt = 1 ); xbInt16 GetNextRecordIx ( xbInt16 iOpt = 1 ); xbInt16 GetPrevRecordIx ( xbInt16 iOpt = 1 ); xbInt16 GetLastRecordIx ( xbInt16 iOpt = 1 ); #endif // XB_INDEX_SUPPORT private: // xbXBase *xbase; xbDbf *dbf; xbExp *exp; xbInt32 lLimit; // max number rows returned xbInt32 lCurQryCnt; // current count of rows returned, neg# is moving from bottom to top // pos# is moving from top to bottom #ifdef XB_INDEX_SUPPORT xbIx *pIx; // if index is set, the class uses the index tag, otherwise table void *vpTag; #endif // XB_INDEX_SUPPORT }; } /* namespace */ #endif /* XB_FILTER_SUPPORT */ #endif /* __XBFILTER_H__ */