diff options
author | Oliver Bolte <obo@openoffice.org> | 2003-09-04 07:28:52 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2003-09-04 07:28:52 +0000 |
commit | 478263f3ff471f3a0a621b2ee86c205dc49a2c78 (patch) | |
tree | eb718e521b3c7f459d01727fd81caa7aaa7d1d4c /connectivity/source/inc/file/fcode.hxx | |
parent | f715b48f3e435a4a55c629d3be5b2b7ffd7b1885 (diff) |
INTEGRATION: CWS oj4 (1.14.86); FILE MERGED
2003/07/01 12:25:45 oj 1.14.86.2: #i14648# implement numeric and datetime functions as well
2003/06/27 13:39:34 oj 1.14.86.1: #i14648# implement string functions for file based drivers
Diffstat (limited to 'connectivity/source/inc/file/fcode.hxx')
-rw-r--r-- | connectivity/source/inc/file/fcode.hxx | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/connectivity/source/inc/file/fcode.hxx b/connectivity/source/inc/file/fcode.hxx index cedfd66688..10738f9b24 100644 --- a/connectivity/source/inc/file/fcode.hxx +++ b/connectivity/source/inc/file/fcode.hxx @@ -2,9 +2,9 @@ * * $RCSfile: fcode.hxx,v $ * - * $Revision: 1.14 $ + * $Revision: 1.15 $ * - * last change: $Author: oj $ $Date: 2002-07-05 08:07:51 $ + * last change: $Author: obo $ $Date: 2003-09-04 08:28:52 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -146,14 +146,14 @@ namespace connectivity { sal_uInt16 m_nRowPos; protected: - OValueRow m_pRow; + OValueRefRow m_pRow; OOperandRow(sal_uInt16 _nPos, sal_Int32 _rType); public: sal_uInt16 getRowPos() const {return m_nRowPos;} virtual const ORowSetValue& getValue() const; virtual void setValue(const ORowSetValue& _rVal); - void bindValue(OValueRow _pRow); // Bindung an den Wert, den der Operand repräsentiert + void bindValue(const OValueRefRow& _pRow); // Bindung an den Wert, den der Operand repräsentiert TYPEINFO(); }; @@ -183,7 +183,6 @@ namespace connectivity TYPEINFO(); }; - // WerteOperanden class OOperandValue : public OOperand { @@ -225,6 +224,8 @@ namespace connectivity OOperandResult(sal_Int32 eDbType) :OOperandValue(eDbType) {} public: + OOperandResult(const ORowSetValue& _rVar) + :OOperandValue(_rVar, _rVar.getTypeKind()) {} TYPEINFO(); }; @@ -249,9 +250,17 @@ namespace connectivity } }; + /** special stop operand + is appended when a list of arguments ends + */ + class OStopOperand : public OOperandValue + { + public: + OStopOperand(){} + TYPEINFO(); + }; // Operatoren - class OOperator : public OCode { public: @@ -384,6 +393,40 @@ namespace connectivity { return getValue().getDouble() != double(0.0); } + + // operator + class ONthOperator : public OOperator + { + public: + virtual void Exec(OCodeStack&); + + TYPEINFO(); + + protected: + virtual ORowSetValue operate(const ::std::vector<ORowSetValue>& lhs) const = 0; + }; + + class OBinaryOperator : public OOperator + { + public: + virtual void Exec(OCodeStack&); + + TYPEINFO(); + + protected: + virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const = 0; + }; + + class OUnaryOperator : public OOperator + { + public: + virtual void Exec(OCodeStack&); + virtual sal_uInt16 getRequestedOperands() const; + virtual ORowSetValue operate(const ORowSetValue& lhs) const = 0; + + TYPEINFO(); + + }; } } |