⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 absexpressions.hpp

📁 Absolute Database 5.12 src. Absolute Database lets you forget the Borland Database Engine (BDE). Th
💻 HPP
📖 第 1 页 / 共 3 页
字号:
	bool __fastcall IsAggregated(void);
	bool __fastcall IsAggregatedCountAll(void);
	void __fastcall Init(void);
	void __fastcall Accumulate(void);
	void __fastcall SetCountAll(int RecordCount);
	void __fastcall AssignAO(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor);
	void __fastcall AssignCursor(Absbase::TABSCursor* Cursor, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor);
	void __fastcall AssignCursorBuffer(char * Buffer, bool ApplyToParentQueryFields);
	Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	int __fastcall GetDataSize(void);
	int __fastcall GetPrecision(void);
	bool __fastcall IsEmpty(void);
	bool __fastcall IsField(void);
	bool __fastcall IsFieldsExpression(void);
	void __fastcall MoveAndNodesToRoot(void);
	void __fastcall GetFieldInfo(AnsiString &TableName, AnsiString &FieldName);
	void __fastcall ApplyFilterParts(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor, bool AllowRecurse = true, bool ForHavingClause = false);
	void __fastcall ReplacePseudonyms(Absrelationalalgebra::TABSSelectListItem * SelectList, const int SelectList_Size);
	int __fastcall ExtractJoinConditions(Absrelationalalgebra::TABSAO* AO1, Absrelationalalgebra::TABSAO* AO2, Absrelationalalgebra::TABSFields* FieldList1, Absrelationalalgebra::TABSFields* FieldList2);
	void __fastcall TryCreateIndexScanConditionsFromNode(TABSExprNode* Node, Absbase::TABSIndexDefs* IndexDefs, Abstypes::TABSScanSearchConditionArray* ScanConditions, int SessionID);
	void __fastcall RemoveExtractedNodes(Abstypes::TABSScanSearchConditionArray* ScanConditions, int ScanConditionNo, int ScanEndConditionNo);
	void __fastcall CreateIndexScanConditions(Absbase::TABSIndexDefs* IndexDefs, Abstypes::TABSScanSearchConditionArray* ScanConditions, int SessionID);
	bool __fastcall ExtendMultiFieldIndexConditionFromNode(TABSExprNode* Node, Abstypes::TABSScanSearchCondition* ScanCondition, Absbase::TABSIndexDef* IndexDef);
	bool __fastcall ExtendMultiFieldIndexCondition(Abstypes::TABSScanSearchCondition* ScanCondition, Absbase::TABSIndexDef* IndexDef);
	void __fastcall AddNode(TABSExprNode* Node);
	void __fastcall AddAndMoveNodesFromExpression(TABSExpression* Expr);
	bool __fastcall CanBeUsedInGroupBy(AnsiString GroupByFields);
	__property bool InMemory = {read=FInMemory, write=FInMemory, nodefault};
};


class DELPHICLASS TABSExprNodeConst;
class PASCALIMPLEMENTATION TABSExprNodeConst : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
public:
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
	bool __fastcall IsLikePatternEqualToPartialComparePattern(void);
	void __fastcall TruncateForPartialCompare(void);
	virtual bool __fastcall CanBeAssigned(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor, bool ForHavingClause = false);
	bool __fastcall IsUpperCase(void);
	bool __fastcall IsLowerCase(void);
public:
	#pragma option push -w-inl
	/* TABSExprNode.Create */ inline __fastcall TABSExprNodeConst(bool CaseInsensitive, bool PartialKey)/* overload */ : TABSExprNode(CaseInsensitive, PartialKey) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TABSExprNode.Destroy */ inline __fastcall virtual ~TABSExprNodeConst(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeField;
class PASCALIMPLEMENTATION TABSExprNodeField : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	Absbase::TABSCursor* LCursor;
	Absrelationalalgebra::TABSAO* LAO;
	char *LRecordBuffer;
	AnsiString FTableName;
	AnsiString FFieldName;
	AnsiString FFieldNameInAO;
	int FFieldNo;
	int FFieldOffsetInBuffer;
	Abstypes::TABSAdvancedFieldType FFieldType;
	Abstypes::TABSBaseFieldType FBaseFieldType;
	int FFieldSize;
	int FFieldPrecision;
	bool FGetFromParent;
	bool FScanOnlyVisibleFieldsInAO;
	
public:
	__fastcall TABSExprNodeField(Absbase::TABSCursor* Cursor, AnsiString FieldName, AnsiString TableName)/* overload */;
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	bool __fastcall TryAssignAO(Absrelationalalgebra::TABSAO* AOToAssign);
	virtual void __fastcall AssignAO(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor);
	bool __fastcall FindFieldInCursor(Absbase::TABSCursor* Cursor, int &FieldNo);
	virtual void __fastcall AssignCursor(Absbase::TABSCursor* Cursor, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor);
	virtual void __fastcall AssignCursorBuffer(char * Buffer, bool ApplyToParentQueryFields);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
	virtual bool __fastcall CanBeAssigned(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor, bool ForHavingClause = false);
	void __fastcall FillItem(Absrelationalalgebra::TABSSelectListItem &Item);
	virtual void __fastcall ReplacePseudonyms(Absrelationalalgebra::TABSSelectListItem * SelectList, const int SelectList_Size);
	virtual bool __fastcall CanBeUsedInGroupBy(AnsiString GroupByFields);
	__property AnsiString TableName = {read=FTableName};
	__property AnsiString FieldName = {read=FFieldName};
	__property int FieldNo = {read=FFieldNo, nodefault};
	__property int FieldSize = {read=FFieldSize, nodefault};
	__property Abstypes::TABSBaseFieldType BaseFieldType = {read=FBaseFieldType, nodefault};
public:
	#pragma option push -w-inl
	/* TABSExprNode.Destroy */ inline __fastcall virtual ~TABSExprNodeField(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeComparison;
class PASCALIMPLEMENTATION TABSExprNodeComparison : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	bool F3ValueLogic;
	TABSQuantifier FQuantifier;
	virtual void __fastcall PatchWideStrings(void);
	Absvariant::TABSVariant* __fastcall GetDataValueByCompare(void);
	Absvariant::TABSVariant* __fastcall GetDataValueByQuantifiedCompare(void);
	
public:
	__fastcall TABSExprNodeComparison(Abstypes::TABSDataOperator Op, TABSExprNode* Node1, TABSExprNode* Node2, bool TrueFalseNullLogic, bool CaseInsensitive, bool PartialKey)/* overload */;
	__fastcall TABSExprNodeComparison(Abstypes::TABSDataOperator Op, TABSQuantifier Quantifier, TABSExprNode* Node1, TABSExprNode* Node2, bool TrueFalseNullLogic, bool CaseInsensitive, bool PartialKey)/* overload */;
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	void __fastcall GetFieldAndConstNodes(TABSExprNodeField* &FieldNode, TABSExprNodeConst* &ConstNode);
	virtual bool __fastcall CanUseIndex(int IndexColumnNo, Abstypes::TABSSearchCondition ConditionSearchOperator, Absbase::TABSIndexDef* IndexDef, int SessionID = 0xffffffff);
	virtual void __fastcall AddAsIndexScanCondition(Abstypes::TABSScanSearchConditionArray* ScanConditions, Absbase::TABSIndexDef* IndexDef, TABSExpression* Expression);
	virtual void __fastcall ExtendIndexScanCondition(Abstypes::TABSScanSearchCondition* ScanCondition, Absbase::TABSIndexDef* IndexDef, TABSExpression* Expression);
	virtual bool __fastcall IsJoinCondition(Absrelationalalgebra::TABSAO* AO1, Absrelationalalgebra::TABSAO* AO2);
public:
	#pragma option push -w-inl
	/* TABSExprNode.Destroy */ inline __fastcall virtual ~TABSExprNodeComparison(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeBoolean;
class PASCALIMPLEMENTATION TABSExprNodeBoolean : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	Absvariant::TABSVariant* TempVal;
	AnsiString EscapeStr;
	void __fastcall Like(void);
	void __fastcall bInSubquery(void);
	void __fastcall bIn(void);
	void __fastcall Between(void);
	void __fastcall Exists(void);
	
public:
	__fastcall TABSExprNodeBoolean(bool CaseInsensitive, bool PartialKey)/* overload */;
	__fastcall TABSExprNodeBoolean(Abstypes::TABSDataOperator Op, bool CaseInsensitive, bool PartialKey, AnsiString aEscapeStr)/* overload */;
	__fastcall TABSExprNodeBoolean(Abstypes::TABSDataOperator Op, TABSExprNode* Node, bool CaseInsensitive, bool PartialKey)/* overload */;
	__fastcall TABSExprNodeBoolean(Abstypes::TABSDataOperator Op, TABSExprNode* Node1, TABSExprNode* Node2, bool CaseInsensitive, bool PartialKey)/* overload */;
	__fastcall TABSExprNodeBoolean(Abstypes::TABSDataOperator Op, TABSExprNode* Node1, TABSExprNode* Node2, TABSExprNode* Node3, bool CaseInsensitive, bool PartialKey)/* overload */;
	__fastcall virtual ~TABSExprNodeBoolean(void);
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual bool __fastcall CanUseIndex(int ColumnNo, Abstypes::TABSSearchCondition ConditionSearchOperator, Absbase::TABSIndexDef* IndexDef, int SessionID = 0xffffffff);
	virtual void __fastcall AddAsIndexScanCondition(Abstypes::TABSScanSearchConditionArray* ScanConditions, Absbase::TABSIndexDef* IndexDef, TABSExpression* Expression);
	virtual void __fastcall ExtendIndexScanCondition(Abstypes::TABSScanSearchCondition* ScanCondition, Absbase::TABSIndexDef* IndexDef, TABSExpression* Expression);
};


class DELPHICLASS TABSExprNodeArithmetic;
class PASCALIMPLEMENTATION TABSExprNodeArithmetic : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
protected:
	void __fastcall SubData(void);
	void __fastcall AddData(void);
	void __fastcall MulData(void);
	void __fastcall DivData(void);
	void __fastcall GetABSValue(void);
	void __fastcall GetACOSValue(void);
	void __fastcall GetASINValue(void);
	void __fastcall GetATANValue(void);
	void __fastcall GetCEILValue(void);
	void __fastcall GetCOSValue(void);
	void __fastcall GetEXPValue(void);
	void __fastcall GetFLOORValue(void);
	void __fastcall GetLOGValue(void);
	void __fastcall GetPOWERValue(void);
	void __fastcall GetRANDValue(void);
	void __fastcall GetROUNDValue(void);
	void __fastcall GetSIGNValue(void);
	void __fastcall GetSINValue(void);
	void __fastcall GetSQRValue(void);
	void __fastcall GetSQRTValue(void);
	
public:
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
public:
	#pragma option push -w-inl
	/* TABSExprNode.Create */ inline __fastcall TABSExprNodeArithmetic(bool CaseInsensitive, bool PartialKey)/* overload */ : TABSExprNode(CaseInsensitive, PartialKey) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TABSExprNode.Destroy */ inline __fastcall virtual ~TABSExprNodeArithmetic(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeAggregated;
class PASCALIMPLEMENTATION TABSExprNodeAggregated : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	int count;
	bool distinct;
	Absvariant::TABSVariant* AvgSum;
	
public:
	__fastcall TABSExprNodeAggregated(Abstypes::TABSDataOperator Op)/* overload */;
	__fastcall TABSExprNodeAggregated(Abstypes::TABSDataOperator Op, bool distinct, TABSExprNode* Node)/* overload */;
	__fastcall virtual ~TABSExprNodeAggregated(void);
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
	virtual bool __fastcall IsAggregated(void);
	virtual bool __fastcall IsAggregatedCountAll(void);
	virtual bool __fastcall CanBeAssigned(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor, bool ForHavingClause = false);
	virtual void __fastcall Init(void);
	virtual void __fastcall Accumulate(void);
	virtual void __fastcall SetCountAll(int RecordCount);
	virtual bool __fastcall CanBeUsedInGroupBy(AnsiString GroupByFields);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -