summaryrefslogtreecommitdiff
path: root/connectivity/source/inc/file/fcode.hxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2003-09-04 07:28:52 +0000
committerOliver Bolte <obo@openoffice.org>2003-09-04 07:28:52 +0000
commit478263f3ff471f3a0a621b2ee86c205dc49a2c78 (patch)
treeeb718e521b3c7f459d01727fd81caa7aaa7d1d4c /connectivity/source/inc/file/fcode.hxx
parentf715b48f3e435a4a55c629d3be5b2b7ffd7b1885 (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.hxx55
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();
+
+ };
}
}