Purpose:
DKQTerm is used to represent a predicate logic expression of a query. A basic query term can be as simple as a text-string (as part of a text query) or a pair of attribute name and value separated by a relational operator (=, >, <, >=, <=, !=, BETWEEN, LIKE, IN). Query terms can be combined together with logical operators (AND, OR, NOT).
Class summary:
class DKQTerm { public: DKQTerm(); DKQTerm(const char* stringTerm); DKQTerm(const char* stringTerm, const DKNVPair* options, long arraySize); DKQTerm(const char* atrrName, short cmpOpCode, const char* attrValue); DKQTerm(const char* atrrName, short cmpOpCode, const DKString* attrValues, long arraySize); DKQTerm(DKQTerm* left, short logOpCode, DKQTerm* right); virtual ~DKQTerm(); virtual short getOpCode(); virtual void setOpCode(short opCode); virtual DKQTerm* getLeft(); virtual void setLeft(DKQTerm* left); virtual DKQTerm* getRight(); virtual void setRight(DKQTerm* right); virtual DKQTerm* and(DKQTerm* rhs); virtual DKQTerm* or(DKQTerm* rhs); virtual DKQTerm* not(); virtual DKBoolean isNotTerm(); virtual DKBoolean isLeaf(); virtual DKString getStringTerm(); virtual void setStringTerm(const char* stringTerm); virtual DKString getName(); virtual void setName(const char* attrName); virtual DKString getValue(); virtual void setValue(const char* attrValue); virtual DKString* getValues(long& arraySize); virtual void setValues(const DKString* attrValues, long arraySize); virtual DKBoolean hasMultiValues(); virtual DKNVPair* getOptions(long& arraySize); virtual void setOptions(const DKNVPair* options, long arraySize); virtual DKString toString(); virtual DKQTerm* clone(); static DKString duplicateSingleQuote(const char* str); static DKString unDuplicateSingleQuote(const char* str); static DKString formatWithSingleQuotes(const char* str); static DKString formatWithDoubleQuotes(const char* str); static DKString formatWithoutSingleQuotes(const char* str); static DKString convertSingleQuotesFormatToDouble(const char* str); };
Members:
The last three constructors are constructors for parametric query terms. The constructor for a basic query term takes an attribute name, a relational operator code, and the attribute value in string. The second of these constructors takes two terms and combine them with a logical operator. After the construction, leftTerm and rightTerm are absorbed and owned by the new term and will be deleted when this new term is deleted.
DKQTerm(); DKQTerm(const char* stringTerm); DKQTerm(const char* stringTerm, const DKNVPair* options, long arraySize); DKQTerm(const char* atrrName, short cmpOpCode, const char* attrValue); DKQTerm(const char* atrrName, short cmpOpCode, const DKString* attrValues, long arraySize); DKQTerm(DKQTerm* left, short logOpCode, DKQTerm* right); virtual ~DKQTerm();
virtual short getOpCode();
virtual void setOpCode(short opCode);
virtual DKQTerm* getLeft();
virtual void setLeft(DKQTerm* left);
virtual DKQTerm* getRight();
virtual void setRight(DKQTerm* right);
virtual DKQTerm* and(DKQTerm* rhs);
virtual DKQTerm* or(DKQTerm* rhs);
virtual DKQTerm* not();
virtual DKBoolean isNotTerm();
virtual DKBoolean isLeaf();
virtual DKString getStringTerm();
virtual void setStringTerm(const char* stringTerm);
virtual DKString getName();
virtual void setName(const char* attrName);
virtual DKString getValue();
virtual void setValue(const char* attrValue);
virtual DKString* getValues(long& arraySize);
virtual void setValues(const DKString* attrValues, long arraySize);
virtual DKBoolean hasMultiValues();
virtual DKNVPair* getOptions(long& arraySize);
virtual void setOptions(const DKNVPair* options, long arraySize);
virtual DKString toString();
virtual DKQTerm* clone();
static DKString duplicateSingleQuote(const char* str);
static DKString unDuplicateSingleQuote(const char* str);
static DKString formatWithSingleQuotes(const char* str);
static DKString formatWithDoubleQuotes(const char* str);
static DKString formatWithoutSingleQuotes(const char* str);
static DKString convertSingleQuotesFormatToDouble(const char* str);
(c) Copyright International Business Machines Corporation 1996, 2003. IBM Corp. All rights reserved.