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

📄 absexpressions.hpp

📁 Absolute Database 5.12 src. Absolute Database lets you forget the Borland Database Engine (BDE). Th
💻 HPP
📖 第 1 页 / 共 3 页
字号:

class DELPHICLASS TABSExprNodeCast;
class PASCALIMPLEMENTATION TABSExprNodeCast : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	Abstypes::TABSAdvancedFieldType FCastType;
	TABSExprNode* LCastSizeNode;
	
public:
	__fastcall TABSExprNodeCast(TABSExprNode* Node, Abstypes::TABSAdvancedFieldType CastType, TABSExprNode* CastSizeNode)/* overload */;
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
public:
	#pragma option push -w-inl
	/* TABSExprNode.Destroy */ inline __fastcall virtual ~TABSExprNodeCast(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeCase;
class PASCALIMPLEMENTATION TABSExprNodeCase : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	Classes::TList* FWhenExpressions;
	Classes::TList* FResultExpressions;
	TABSExprNode* FElseResultExpression;
	TABSExprNode* FInputExpression;
	DynamicArray<TABSExprNode* >  FCoalesceNodes;
	bool FIsCoalesceExpression;
	
public:
	void __fastcall CreateInit(void);
	__fastcall TABSExprNodeCase(TABSExprNode* InputExpression);
	__fastcall TABSExprNodeCase(void);
	__fastcall TABSExprNodeCase(TABSExprNodeArray Nodes);
	__fastcall virtual ~TABSExprNodeCase(void);
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
	void __fastcall AddWhenExpression(TABSExprNode* Node);
	void __fastcall AddResultExpression(TABSExprNode* Node);
	void __fastcall SetElseResultExpression(TABSExprNode* Node);
public:
	#pragma option push -w-inl
	/* TABSExprNode.Create */ inline __fastcall TABSExprNodeCase(bool CaseInsensitive, bool PartialKey)/* overload */ : TABSExprNode(CaseInsensitive, PartialKey) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeBlob;
class PASCALIMPLEMENTATION TABSExprNodeBlob : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	void __fastcall MimeToBin(void);
	
public:
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
public:
	#pragma option push -w-inl
	/* TABSExprNode.Create */ inline __fastcall TABSExprNodeBlob(bool CaseInsensitive, bool PartialKey)/* overload */ : TABSExprNode(CaseInsensitive, PartialKey) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TABSExprNode.Destroy */ inline __fastcall virtual ~TABSExprNodeBlob(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeStringFunction;
class PASCALIMPLEMENTATION TABSExprNodeStringFunction : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
protected:
	bool __fastcall InitStringValue(void);
	void __fastcall Concat(void);
	void __fastcall Upper(void);
	void __fastcall Lower(void);
	void __fastcall Trim(void);
	void __fastcall LTrim(void);
	void __fastcall RTrim(void);
	void __fastcall Length(void);
	void __fastcall Pos(void);
	void __fastcall Substring(void);
	
public:
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
public:
	#pragma option push -w-inl
	/* TABSExprNode.Create */ inline __fastcall TABSExprNodeStringFunction(bool CaseInsensitive, bool PartialKey)/* overload */ : TABSExprNode(CaseInsensitive, PartialKey) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TABSExprNode.Destroy */ inline __fastcall virtual ~TABSExprNodeStringFunction(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSExprNodeSystem;
class PASCALIMPLEMENTATION TABSExprNodeSystem : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	AnsiString FTableName;
	AnsiString FColumnName;
	bool FInMemory;
	Db::TDataSet* FTable;
	Abstypes::TABSAdvancedFieldType FFieldType;
	int FRowNumValue;
	void __fastcall LastAutoInc(void);
	void __fastcall RowNum(void);
	
public:
	__fastcall TABSExprNodeSystem(Abstypes::TABSDataOperator Operator, AnsiString DatabaseName, AnsiString TableName, AnsiString ColumnName, bool InMemory)/* overload */;
	__fastcall virtual ~TABSExprNodeSystem(void);
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
};


class DELPHICLASS TABSExprNodeDateFunction;
class PASCALIMPLEMENTATION TABSExprNodeDateFunction : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	Absdateformat::TDateFormater* DateFormater;
	Abstypes::TABSDateTimeExtractField ExtractDateTimeField;
	void __fastcall ToDate(void);
	void __fastcall ToString(void);
	void __fastcall Extract(void);
	
public:
	__fastcall TABSExprNodeDateFunction(Abstypes::TABSDataOperator Op, TABSExprNode* Node, AnsiString FormatStr)/* overload */;
	__fastcall TABSExprNodeDateFunction(Abstypes::TABSDataOperator Op, Abstypes::TABSDateTimeExtractField ExtractField, TABSExprNode* ExtractSource)/* overload */;
	__fastcall virtual ~TABSExprNodeDateFunction(void);
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
};


typedef bool __fastcall (__closure *TCheckResultsMethod)(void);

typedef DynamicArray<Absvariant::TABSVariant* >  ABSExpressions__61;

class DELPHICLASS TABSExprNodeSubquery;
class PASCALIMPLEMENTATION TABSExprNodeSubquery : public TABSExprNode 
{
	typedef TABSExprNode inherited;
	
private:
	bool FMustHaveOneField;
	bool FMustHaveOneRow;
	Absvariant::TABSVariant* FValue;
	DynamicArray<Absvariant::TABSVariant* >  FFieldValues;
	Db::TDataSet* LDataset;
	Abslexer::TABSLexer* LLexer;
	Absrelationalalgebra::TABSAO* LAO;
	Absbase::TABSCursor* LCursor;
	char *LCursorRecordBuffer;
	System::TObject* FSubquery;
	int FCommandNo;
	int FTokenNo;
	Absvariant::TABSVariant* LValueToCheck;
	Absvariant::TABSVariant* FPriorValueToCheck;
	bool FPriorResult;
	bool FPriorResultInitalized;
	Abstypes::TABSDataOperator FCompareOperator;
	TABSQuantifier FCompareQuantifier;
	bool FCorrelated;
	bool __fastcall CheckGetDataValue(void);
	bool __fastcall CheckGetFieldValues(void);
	bool __fastcall CheckExists(void);
	bool __fastcall CheckIsValueIn(void);
	bool __fastcall CheckQuantifiedCompare(void);
	bool __fastcall RunQueryAndCheckResults(TCheckResultsMethod CheckMethod);
	
public:
	__fastcall TABSExprNodeSubquery(bool MustHaveOneField, bool MustHaveOneRow, Db::TDataSet* Dataset, Abslexer::TABSLexer* Lexer);
	__fastcall virtual ~TABSExprNodeSubquery(void);
	virtual void __fastcall AssignCursor(Absbase::TABSCursor* Cursor, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor);
	virtual void __fastcall AssignCursorBuffer(char * Buffer, bool ApplyToParentQueryFields);
	virtual void __fastcall AssignAO(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor);
	virtual bool __fastcall CanBeAssigned(Absrelationalalgebra::TABSAO* AO, Absrelationalalgebra::TABSAO* ParentQueryAO, Absbase::TABSCursor* ParentCursor, bool ForHavingClause = false);
	virtual Absvariant::TABSVariant* __fastcall GetDataValue(void);
	virtual void __fastcall ResetSubqueryFieldValues(void);
	virtual Absvariant::TABSVariant* __fastcall GetSubqueryFieldValue(int FieldNo);
	virtual Abstypes::TABSAdvancedFieldType __fastcall GetDataType(void);
	virtual int __fastcall GetDataSize(void);
	bool __fastcall Exists(void);
	bool __fastcall IsValueIn(Absvariant::TABSVariant* Value);
	bool __fastcall QuantifiedCompare(Abstypes::TABSDataOperator Operator, TABSQuantifier Quantifier, Absvariant::TABSVariant* Value);
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE AnsiString __fastcall GetOperatorName(Abstypes::TABSDataOperator op);
extern PACKAGE Abstypes::TABSAdvancedFieldType __fastcall GetFieldType(const AnsiString TypeName);
extern PACKAGE void __fastcall FillFieldNames(Classes::TStringList* List, const AnsiString Names);
extern PACKAGE Abstypes::TABSDataOperator __fastcall ReverseComparisonOperator(Abstypes::TABSDataOperator CompOp);
extern PACKAGE Abstypes::TABSDataOperator __fastcall InvertComparisonOperator(Abstypes::TABSDataOperator CompOp);
extern PACKAGE bool __fastcall IsNonConstantExpression(Absvariant::TABSVariant* Value);

}	/* namespace Absexpressions */
using namespace Absexpressions;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Absexpressions

⌨️ 快捷键说明

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