diff options
author | Ocke Janssen <oj@openoffice.org> | 2000-10-19 10:47:14 +0000 |
---|---|---|
committer | Ocke Janssen <oj@openoffice.org> | 2000-10-19 10:47:14 +0000 |
commit | 0cd2621b09a421fa1afd7e0297be852b1f79ee59 (patch) | |
tree | 71472273640eaea67e1374dc5dc8160835184357 /connectivity/inc/connectivity | |
parent | 616df3d2a25cec2b8c99a35234350fd8a95c1748 (diff) |
remove tools from dbtools
Diffstat (limited to 'connectivity/inc/connectivity')
-rw-r--r-- | connectivity/inc/connectivity/dbconversion.hxx | 141 | ||||
-rw-r--r-- | connectivity/inc/connectivity/sdbcx/VDescriptor.hxx | 5 | ||||
-rw-r--r-- | connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx | 6 | ||||
-rw-r--r-- | connectivity/inc/connectivity/sqliterator.hxx | 60 | ||||
-rw-r--r-- | connectivity/inc/connectivity/sqlnode.hxx | 80 | ||||
-rw-r--r-- | connectivity/inc/connectivity/sqlparse.hxx | 64 |
6 files changed, 204 insertions, 152 deletions
diff --git a/connectivity/inc/connectivity/dbconversion.hxx b/connectivity/inc/connectivity/dbconversion.hxx index 876e225e1333..461441aba7b0 100644 --- a/connectivity/inc/connectivity/dbconversion.hxx +++ b/connectivity/inc/connectivity/dbconversion.hxx @@ -2,9 +2,9 @@ * * $RCSfile: dbconversion.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: fs $ $Date: 2000-10-05 08:56:19 $ + * last change: $Author: oj $ $Date: 2000-10-19 11:44:32 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,92 +62,135 @@ #ifndef _DBHELPER_DBCONVERSION_HXX_ #define _DBHELPER_DBCONVERSION_HXX_ -#ifndef _COM_SUN_STAR_SDB_XCOLUMNUPDATE_HPP_ -#include <com/sun/star/sdb/XColumnUpdate.hpp> +//#ifndef _COM_SUN_STAR_SDB_XCOLUMNUPDATE_HPP_ +//#include <com/sun/star/sdb/XColumnUpdate.hpp> +//#endif +//#ifndef _COM_SUN_STAR_SDB_XCOLUMN_HPP_ +//#include <com/sun/star/sdb/XColumn.hpp> +//#endif +//#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_ +//#include <com/sun/star/util/XNumberFormatter.hpp> +//#endif +//#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +//#include <com/sun/star/beans/XPropertySet.hpp> +//#endif +#ifndef _COM_SUN_STAR_UTIL_DATE_HPP_ +#include <com/sun/star/util/Date.hpp> #endif -#ifndef _COM_SUN_STAR_SDB_XCOLUMN_HPP_ -#include <com/sun/star/sdb/XColumn.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_ -#include <com/sun/star/util/XNumberFormatter.hpp> -#endif -#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ -#include <com/sun/star/beans/XPropertySet.hpp> +#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_ +#include <com/sun/star/uno/Reference.h> #endif + +// forward declarations +namespace rtl +{ + class OUString; +} +namespace com +{ + namespace sun + { + namespace star + { + namespace uno + { + class Reference; + } + namespace lang + { + class IllegalArgumentException; + struct Locale; + } + namespace sdb + { + class XColumn; + class XColumnUpdate; + } + namespace beans + { + class XPropertySet; + } + namespace util + { + class XNumberFormatter; + class XNumberFormatsSupplier; + struct Time; + struct DateTime; + } + } + } +} + //......................................................................... namespace dbtools { //......................................................................... - namespace staruno = ::com::sun::star::uno; - namespace starsdbc = ::com::sun::star::sdbc; - namespace starsdb = ::com::sun::star::sdb; - namespace starutil = ::com::sun::star::util; - namespace starlang = ::com::sun::star::lang; - namespace starbeans = ::com::sun::star::beans; - class DBTypeConversion { public: - static starutil::Date STANDARD_DB_DATE; + static ::com::sun::star::util::Date STANDARD_DB_DATE; public: - static void setValue(const staruno::Reference<starsdb::XColumnUpdate>& xVariant, - const staruno::Reference<starutil::XNumberFormatter>& xFormatter, - const starutil::Date& rNullDate, + static void setValue(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumnUpdate>& xVariant, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter>& xFormatter, + const ::com::sun::star::util::Date& rNullDate, const ::rtl::OUString& rString, sal_Int32 nKey, sal_Int16 nFieldType, - sal_Int16 nKeyType) throw(starlang::IllegalArgumentException); + sal_Int16 nKeyType) throw(::com::sun::star::lang::IllegalArgumentException); - static void setValue(const staruno::Reference<starsdb::XColumnUpdate>& xVariant, - const starutil::Date& rNullDate, + static void setValue(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumnUpdate>& xVariant, + const ::com::sun::star::util::Date& rNullDate, const double& rValue, - sal_Int16 nKeyType) throw(starlang::IllegalArgumentException); + sal_Int16 nKeyType) throw(::com::sun::star::lang::IllegalArgumentException); - static double getValue(const staruno::Reference<starsdb::XColumn>& xVariant, const starutil::Date& rNullDate, + static double getValue(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn>& xVariant, const ::com::sun::star::util::Date& rNullDate, sal_Int16 nKeyType); // get the columnvalue as string with a default format given by the column or a default format // for the type - static ::rtl::OUString getValue(const staruno::Reference<starbeans::XPropertySet>& _xColumn, - const staruno::Reference<starutil::XNumberFormatter>& xFormatter, - const starlang::Locale& _rLocale, - const starutil::Date& rNullDate); - - static ::rtl::OUString getValue(const staruno::Reference<starsdb::XColumn>& _xColumn, - const staruno::Reference<starutil::XNumberFormatter>& xFormatter, - const starutil::Date& rNullDate, + static ::rtl::OUString getValue(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xColumn, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter>& xFormatter, + const ::com::sun::star::lang::Locale& _rLocale, + const ::com::sun::star::util::Date& rNullDate); + + static ::rtl::OUString getValue(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn>& _xColumn, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter>& xFormatter, + const ::com::sun::star::util::Date& rNullDate, sal_Int32 nKey, sal_Int16 nKeyType); - static starutil::Date toDate(double dVal, const starutil::Date& _rNullDate = STANDARD_DB_DATE); - static starutil::Time toTime(double dVal); - static starutil::DateTime toDateTime(double dVal, const starutil::Date& _rNullDate = STANDARD_DB_DATE); + static ::com::sun::star::util::Date toDate(double dVal, const ::com::sun::star::util::Date& _rNullDate = STANDARD_DB_DATE); + static ::com::sun::star::util::Time toTime(double dVal); + static ::com::sun::star::util::DateTime toDateTime(double dVal, const ::com::sun::star::util::Date& _rNullDate = STANDARD_DB_DATE); /** return the given DateTime as JDBC compliant 64 bit value */ - static sal_Int64 toINT64(const starutil::DateTime& rVal); - static sal_Int32 getMsFromTime(const starutil::Time& rVal); + static sal_Int64 toINT64(const ::com::sun::star::util::DateTime& rVal); + static sal_Int32 getMsFromTime(const ::com::sun::star::util::Time& rVal); - static sal_Int32 toDays(const starutil::Date& _rVal, const starutil::Date& _rNullDate = STANDARD_DB_DATE); + static sal_Int32 toDays(const ::com::sun::star::util::Date& _rVal, const ::com::sun::star::util::Date& _rNullDate = STANDARD_DB_DATE); - static double toDouble(const starutil::Date& rVal, const starutil::Date& _rNullDate = STANDARD_DB_DATE); - static double toDouble(const starutil::Time& rVal); - static double toDouble(const starutil::DateTime& rVal, const starutil::Date& _rNullDate = STANDARD_DB_DATE); + static double toDouble(const ::com::sun::star::util::Date& rVal, const ::com::sun::star::util::Date& _rNullDate = STANDARD_DB_DATE); + static double toDouble(const ::com::sun::star::util::Time& rVal); + static double toDouble(const ::com::sun::star::util::DateTime& rVal, const ::com::sun::star::util::Date& _rNullDate = STANDARD_DB_DATE); - static sal_Int32 toINT32(const starutil::Date& rVal); - static sal_Int32 toINT32(const starutil::Time& rVal); + static sal_Int32 toINT32(const ::com::sun::star::util::Date& rVal); + static sal_Int32 toINT32(const ::com::sun::star::util::Time& rVal); /** convert a double which is a date value relative to a given fixed date into a date value relative to the standard db null date. */ - static double toStandardDbDate(const starutil::Date& _rNullDate, double _rVal) { return _rVal + toDays(_rNullDate); } + static double toStandardDbDate(const ::com::sun::star::util::Date& _rNullDate, double _rVal) { return _rVal + toDays(_rNullDate); } /** convert a double which is a date value relative to the standard db null date into a date value relative to a given fixed date. */ - static double toNullDate(const starutil::Date& _rNullDate, double _rVal) { return _rVal - toDays(_rNullDate); } + static double toNullDate(const ::com::sun::star::util::Date& _rNullDate, double _rVal) { return _rVal - toDays(_rNullDate); } + + // return the date from the numberformatsupplier or the STANDARD_DATE (1900,1,1) + static ::com::sun::star::util::Date getNULLDate(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier > &xSupplier); }; //......................................................................... diff --git a/connectivity/inc/connectivity/sdbcx/VDescriptor.hxx b/connectivity/inc/connectivity/sdbcx/VDescriptor.hxx index 46df53666595..d6f35871a8c1 100644 --- a/connectivity/inc/connectivity/sdbcx/VDescriptor.hxx +++ b/connectivity/inc/connectivity/sdbcx/VDescriptor.hxx @@ -2,9 +2,9 @@ * * $RCSfile: VDescriptor.hxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: fs $ $Date: 2000-10-11 10:48:21 $ + * last change: $Author: oj $ $Date: 2000-10-19 11:44:33 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -93,6 +93,7 @@ namespace connectivity : ::comphelper::OPropertyContainer(_rBHelper) , m_bNew(_bNew),m_aCase(_bCase){} + virtual ~ODescriptor(); sal_Bool isNew() const { return m_bNew; } sal_Bool getNew() const { return m_bNew; } diff --git a/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx b/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx index 4a45398ddad4..030f1817f407 100644 --- a/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx +++ b/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx @@ -2,9 +2,9 @@ * * $RCSfile: VKeyColumn.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: fs $ $Date: 2000-10-11 10:48:21 $ + * last change: $Author: oj $ $Date: 2000-10-19 11:44:33 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -93,6 +93,8 @@ namespace connectivity sal_Bool _IsRowVersion, sal_Bool _IsCurrency, sal_Bool _bCase); + // just to make it not inline + virtual ~OKeyColumn(); virtual void construct(); }; diff --git a/connectivity/inc/connectivity/sqliterator.hxx b/connectivity/inc/connectivity/sqliterator.hxx index 8801d33e911d..2c27e6df08e6 100644 --- a/connectivity/inc/connectivity/sqliterator.hxx +++ b/connectivity/inc/connectivity/sqliterator.hxx @@ -2,9 +2,9 @@ * * $RCSfile: sqliterator.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: fs $ $Date: 2000-10-11 10:48:50 $ + * last change: $Author: oj $ $Date: 2000-10-19 11:44:52 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -61,9 +61,9 @@ #ifndef _CONNECTIVITY_PARSE_SQLITERATOR_HXX_ #define _CONNECTIVITY_PARSE_SQLITERATOR_HXX_ -#ifndef _SVTOOLS_HASHCONT_HXX //autogen -#include <svtools/hashcont.hxx> -#endif +//#ifndef _SVTOOLS_HASHCONT_HXX //autogen +//#include <svtools/hashcont.hxx> +//#endif #ifndef _CONNECTIVITY_SQLNODE_HXX #include "connectivity/sqlnode.hxx" #endif @@ -129,8 +129,8 @@ namespace connectivity //================================================================== struct OSQLParseIteratorErrorInfo { - USHORT nErrorCode; // 1 == Tabelle nicht gefunden, 2 == Spalte nicht gefunden - String aExpression; // der Teil-Ausdruck, der das Problem verursacht hat (kann leer sein) + sal_uInt16 nErrorCode; // 1 == Tabelle nicht gefunden, 2 == Spalte nicht gefunden + ::rtl::OUString aExpression; // der Teil-Ausdruck, der das Problem verursacht hat (kann leer sein) }; #define RET_CONTINUE 1 // Parsevorgang fortsetzen @@ -146,28 +146,26 @@ namespace connectivity ::vos::ORef<OSQLColumns> m_aSelectColumns; // alle Spalten aus dem Select-Clause ::comphelper::UStringMixEqual m_aCaseEqual; - Link m_aErrorHdl; // wird im Fehlerfall gerufen ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess> m_xTables; ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData> m_xDatabaseMetaData; // F"ugt eine Tabelle in die Map ein - void traverseOneTableName(const OSQLParseNode * pTableName, const String & rTableRange); + void traverseOneTableName(const OSQLParseNode * pTableName, const ::rtl::OUString & rTableRange); void traverseORCriteria(OSQLParseNode * pSearchCondition); void traverseANDCriteria(OSQLParseNode * pSearchCondition); void traverseOnePredicate( OSQLParseNode * pColumnRef, OSQLPredicateType ePredicateType, - String& aValue, - BOOL bCompareNull, + ::rtl::OUString& aValue, + sal_Bool bCompareNull, OSQLParseNode * pParameter); - OSQLParseNode * getTableRef(OSQLParseNode *pTableRef,String& aTableRange); - OSQLParseNode * getQualified_join(OSQLParseNode *pTableRef,String& aTableRange); + OSQLParseNode * getTableRef(OSQLParseNode *pTableRef,::rtl::OUString& aTableRange); + OSQLParseNode * getQualified_join(OSQLParseNode *pTableRef,::rtl::OUString& aTableRange); void getSelect_statement(OSQLParseNode *pSelect); - BOOL CallError(USHORT nError, const String& rExpression = String()); - String getUniqueColumnName(const String & rColumnName) const; + ::rtl::OUString getUniqueColumnName(const ::rtl::OUString & rColumnName) const; protected: - void setSelectColumnName(const String & rColumnName,const String & rColumnAlias, const String & rTableRange,BOOL bFkt=FALSE); + void setSelectColumnName(const ::rtl::OUString & rColumnName,const ::rtl::OUString & rColumnAlias, const ::rtl::OUString & rTableRange,sal_Bool bFkt=sal_False); void appendColumns(const OSQLTable& _rTable); // Weitere Member-Variable, die in den "set"-Funktionen zur // Verfuegung stehen sollen, koennen in der abgeleiteten Klasse @@ -249,8 +247,8 @@ namespace connectivity // des Parse Tree abgebrochen. Ansonsten liefert "Status().IsSuccessful() == TRUE". void traverseTableNames(); - virtual void setTableName(const String & rTableName, const String & rDBName, const String& rOwner, - const String & rTableRange); + virtual void setTableName(const ::rtl::OUString & rTableName, const ::rtl::OUString & rDBName, const ::rtl::OUString& rOwner, + const ::rtl::OUString & rTableRange); // [TableName enthaelt immer einen Namen, TableRange ist, falls angegeben, die "Range"- // Variable (eine Art Alias-Name fuer den TableName), falls nicht angegeben, identisch // zum TableName. SchemaName ist leer, wenn nicht angegeben.] @@ -259,7 +257,7 @@ namespace connectivity // [TableRange kann leer sein, wenn nicht angegeben] void traverseOrderByColumnNames(const OSQLParseNode* pSelectNode); - virtual void setOrderByColumnName(const String & rColumnName, const String & rTableRange, BOOL bAscending); + virtual void setOrderByColumnName(const ::rtl::OUString & rColumnName, const ::rtl::OUString & rTableRange, sal_Bool bAscending); // [TableRange kann leer sein, wenn nicht angegeben] // Bei Selektionskriterien werden (selbst bei einem einfachen Praedikat) @@ -286,18 +284,18 @@ namespace connectivity virtual void setORCriteriaPost(); virtual void setANDCriteriaPre(); virtual void setANDCriteriaPost(); - virtual void setPredicate(const String & rColumnName, - const String & rTableRange, + virtual void setPredicate(const ::rtl::OUString & rColumnName, + const ::rtl::OUString & rTableRange, OSQLPredicateType ePredicateType, - const String & rValue, - const String & rParameterName); + const ::rtl::OUString & rValue, + const ::rtl::OUString & rParameterName); // Erweiterung auf UPDATE- und INSERT-Statement ... (nyi): void traverseAssignments(); - virtual void setAssign(const String & rColumnName, - const String & rValue, BOOL bsetNull, - const String & rParameterName); + virtual void setAssign(const ::rtl::OUString & rColumnName, + const ::rtl::OUString & rValue, sal_Bool bsetNull, + const ::rtl::OUString & rParameterName); // Alle "traverse"-Routinen hintereinander aufrufen. Je nach Statement-Typ: // Bei UPDATE und INSERT-Statement nur traverseTableNames und traverseAssignments, @@ -319,17 +317,13 @@ namespace connectivity ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > getSelectAsNameAccess(::cppu::OWeakObject& _rParent,::osl::Mutex& _rMutex) const; // gibt den Aliasnamen der Column zur"uck, Leer falls nicht vorhanden - String getColumnAlias(const OSQLParseNode* pDerivedColumn) const; + ::rtl::OUString getColumnAlias(const OSQLParseNode* pDerivedColumn) const; // gibt den Columnnamen und die Tablerange (falls vorhanden) zur"uck - void getColumnRange(const OSQLParseNode* pColumnRef,String &rColumnName,String &rTableRange) const; + void getColumnRange(const OSQLParseNode* pColumnRef,::rtl::OUString &rColumnName,::rtl::OUString &rTableRange) const; // Ermittelt fuer eine Funktion, Spalten den zugehoeren TableRange, // wenn nicht eindeutig, dann leer - BOOL getColumnTableRange(const OSQLParseNode* pNode, String &rTableRange) const; - - // FehlerHdl setzen - void setErrorHdl(const Link& rHdl){ m_aErrorHdl = rHdl;}; - const Link& getErrorHdl(){ return m_aErrorHdl;}; + sal_Bool getColumnTableRange(const OSQLParseNode* pNode, ::rtl::OUString &rTableRange) const; }; } diff --git a/connectivity/inc/connectivity/sqlnode.hxx b/connectivity/inc/connectivity/sqlnode.hxx index 4cf5e68ff511..07cdf68f3b17 100644 --- a/connectivity/inc/connectivity/sqlnode.hxx +++ b/connectivity/inc/connectivity/sqlnode.hxx @@ -2,9 +2,9 @@ * * $RCSfile: sqlnode.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 16:14:19 $ + * last change: $Author: oj $ $Date: 2000-10-19 11:44:32 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -76,12 +76,6 @@ #ifndef __SGI_STL_VECTOR #include <stl/vector> #endif -#ifndef _STRING_HXX //autogen -#include <tools/string.hxx> -#endif -#ifndef _DEBUG_HXX //autogen -#include <tools/debug.hxx> -#endif // forward declarations namespace com @@ -106,8 +100,6 @@ namespace com } } -class International; - namespace connectivity { @@ -131,8 +123,8 @@ namespace connectivity OSQLParseNodes m_aChilds; OSQLParseNode* m_pParent; // pParent fuer Reuckverkettung im Baum - String m_aNodeValue; // Token-Name oder leer bei Regeln oder String bei - // String, INT, usw. -Werten + ::rtl::OUString m_aNodeValue; // Token-Name oder leer bei Regeln oder ::rtl::OUString bei + // ::rtl::OUString, INT, usw. -Werten SQLNodeType m_eNodeType; // s. o. sal_uInt32 m_nNodeID; // ::com::sun::star::chaos::Rule ID (bei IsRule()) oder Token ID (bei !IsRule()) // ::com::sun::star::chaos::Rule IDs und Token IDs koennen nicht anhand des Wertes @@ -140,26 +132,26 @@ namespace connectivity protected: struct SQLParseNodeParameter { - const International& rIntl; - const String aIdentifierQuote; - const String aCatalogSeparator; + const ::com::sun::star::lang::Locale& rLocale; + const ::rtl::OUString aIdentifierQuote; + const ::rtl::OUString aCatalogSeparator; ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > xFormatter; ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xField; const OParseContext& rContext; - char cDecSep ; + sal_Char cDecSep ; sal_Bool bQuote : 1; sal_Bool bInternational : 1; sal_Bool bPredicate : 1; - SQLParseNodeParameter(const String& _rIdentifierQuote, - const String& _rCatalogSep, + SQLParseNodeParameter(const ::rtl::OUString& _rIdentifierQuote, + const ::rtl::OUString& _rCatalogSep, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > & _xFormatter, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & _xField, - const International& _rIntl, + const ::com::sun::star::lang::Locale& _rIntl, const OParseContext* _pContext, sal_Bool _bIntl = sal_False, sal_Bool _bQuote= sal_True, - char _cDecSep = '.', + sal_Char _cDecSep = '.', sal_Bool _bPredicate = sal_False); }; @@ -249,7 +241,7 @@ namespace connectivity SQLNodeType _eNodeType, sal_uInt32 _nNodeID = 0); - OSQLParseNode(const ByteString& _rValue, + OSQLParseNode(const ::rtl::OString& _rValue, SQLNodeType eNewNodeType, sal_uInt32 nNewNodeID=0); @@ -257,7 +249,7 @@ namespace connectivity SQLNodeType _eNodeType, sal_uInt32 _nNodeID = 0); - OSQLParseNode(const String& _rValue, + OSQLParseNode(const ::rtl::OUString& _rValue, SQLNodeType _eNodeType, sal_uInt32 _nNodeID = 0); @@ -289,32 +281,34 @@ namespace connectivity OSQLParseNode* removeAt(sal_uInt32 nPos); OSQLParseNode* remove(OSQLParseNode* pSubTree); - void replaceNodeValue(const String& rTableAlias,const String& rColumnName); + void replaceNodeValue(const ::rtl::OUString& rTableAlias,const ::rtl::OUString& rColumnName); - void parseNodeToStr(String& rString, + void parseNodeToStr(::rtl::OUString& rString, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > & xMeta, OParseContext* pContext = NULL, sal_Bool _bIntl = sal_False, sal_Bool _bQuote= sal_True) const; // quoted und internationalisert - void parseNodeToPredicateStr(String& rString, + void parseNodeToPredicateStr(::rtl::OUString& rString, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > & xMeta, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > & xFormatter, - const International& rIntl, + const ::com::sun::star::lang::Locale& rIntl, + sal_Char _cDec, OParseContext* pContext = NULL ) const; - void parseNodeToPredicateStr(String& rString, + void parseNodeToPredicateStr(::rtl::OUString& rString, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > & xMeta, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > & xFormatter, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & _xField, - const International& rIntl, + const ::com::sun::star::lang::Locale& rIntl, + sal_Char _cDec, OParseContext* pContext = NULL ) const; OSQLParseNode* getByRule(OSQLParseNode::Rule eRule) const; // zeigt den ParseTree mit tabs und linefeeds - void showParseTree(String& rString, sal_uInt32 nLevel=0); + void showParseTree(::rtl::OUString& rString, sal_uInt32 nLevel=0); // GetNodeType gibt den Knotentyp zurueck SQLNodeType getNodeType() const {return m_eNodeType;}; @@ -335,10 +329,10 @@ namespace connectivity sal_Bool isToken() const {return !isRule();} // ein Token ist keine Regel // TokenValue liefert den NodeValue eines Tokens - const String& getTokenValue() const {return m_aNodeValue;} + const ::rtl::OUString& getTokenValue() const {return m_aNodeValue;} // SetTokenValue setzt den NodeValue - void setTokenValue(const String& rString) { if (isToken()) m_aNodeValue = rString;} + void setTokenValue(const ::rtl::OUString& rString) { if (isToken()) m_aNodeValue = rString;} // IsLeaf testet ob ein Node ein Blatt ist sal_Bool isLeaf() const {return m_aChilds.empty();} @@ -365,41 +359,41 @@ namespace connectivity protected: // ParseNodeToStr konkateniert alle Token (Blaetter) des ParseNodes - void parseNodeToStr(String& rString, + void parseNodeToStr(::rtl::OUString& rString, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > & xMeta, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > & xFormatter, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & _xField, - const International& rIntl, + const ::com::sun::star::lang::Locale& rIntl, OParseContext* pContext, sal_Bool _bIntl, sal_Bool _bQuote, - char _cDecSep, + sal_Char _cDecSep, sal_Bool bPredicate) const; - virtual void parseNodeToStr(String& rString, + virtual void parseNodeToStr(::rtl::OUString& rString, const SQLParseNodeParameter& rParam) const; private: - void likeNodeToStr(String& rString, + void likeNodeToStr(::rtl::OUString& rString, const SQLParseNodeParameter& rParam) const; - void tableRangeNodeToStr(String& rString, + void tableRangeNodeToStr(::rtl::OUString& rString, const SQLParseNodeParameter& rParam) const; - sal_Bool addDateValue(String& rString, const SQLParseNodeParameter& rParam) const; - String convertDateTimeString(const SQLParseNodeParameter& rParam, const String& rString) const; - String convertDateString(const SQLParseNodeParameter& rParam, const String& rString) const; - String convertTimeString(const SQLParseNodeParameter& rParam, const String& rString) const; + sal_Bool addDateValue(::rtl::OUString& rString, const SQLParseNodeParameter& rParam) const; + ::rtl::OUString convertDateTimeString(const SQLParseNodeParameter& rParam, const ::rtl::OUString& rString) const; + ::rtl::OUString convertDateString(const SQLParseNodeParameter& rParam, const ::rtl::OUString& rString) const; + ::rtl::OUString convertTimeString(const SQLParseNodeParameter& rParam, const ::rtl::OUString& rString) const; }; //----------------------------------------------------------------------------- inline OSQLParseNode* OSQLParseNode::getChild(sal_uInt32 nPos) const { - DBG_ASSERT(nPos < m_aChilds.size(), "Invalid Position"); + OSL_ENSHURE(nPos < m_aChilds.size(), "Invalid Position"); return m_aChilds[nPos]; } // Utility-Methoden zum Abfragen auf bestimmte Rules, Token oder Punctuation: #define SQL_ISRULE(pParseNode, eRule) ((pParseNode)->isRule() && (pParseNode)->getRuleID() == OSQLParser::RuleID(OSQLParseNode::##eRule)) #define SQL_ISTOKEN(pParseNode, token) ((pParseNode)->isToken() && (pParseNode)->getTokenID() == SQL_TOKEN_##token) - #define SQL_ISPUNCTUATION(pParseNode, aString) ((pParseNode)->getNodeType() == SQL_NODE_PUNCTUATION && (pParseNode)->getTokenValue().EqualsAscii(aString)) + #define SQL_ISPUNCTUATION(pParseNode, aString) ((pParseNode)->getNodeType() == SQL_NODE_PUNCTUATION && !(pParseNode)->getTokenValue().compareToAscii(aString)) } #endif //_CONNECTIVITY_SQLNODE_HXX diff --git a/connectivity/inc/connectivity/sqlparse.hxx b/connectivity/inc/connectivity/sqlparse.hxx index 641ca366e941..7d7c880e6727 100644 --- a/connectivity/inc/connectivity/sqlparse.hxx +++ b/connectivity/inc/connectivity/sqlparse.hxx @@ -2,9 +2,9 @@ * * $RCSfile: sqlparse.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: oj $ $Date: 2000-10-17 08:32:36 $ + * last change: $Author: oj $ $Date: 2000-10-19 11:44:32 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -75,6 +75,15 @@ #include "connectivity/sqlbison.hxx" #endif #endif +#ifndef _COM_SUN_STAR_LANG_XCHARACTERCLASSIFICATION_HPP_ +#include <com/sun/star/lang/XCharacterClassification.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XLOCALEDATA_HPP_ +#include <com/sun/star/lang/XLocaleData.hpp> +#endif // forward declarations namespace com @@ -91,10 +100,13 @@ namespace com { class XNumberFormatter; } + namespace lang + { + struct Locale; + } } } } -class International; namespace connectivity { class OSQLScanner; @@ -143,16 +155,16 @@ namespace connectivity virtual ~OParseContext(); // retrieves language specific error messages - virtual String getErrorMessage(ErrorCode _eCodes) const; + virtual ::rtl::OUString getErrorMessage(ErrorCode _eCodes) const; // retrieves language specific keyword strings (only ASCII allowed) - virtual ByteString getIntlKeywordAscii(InternationalKeyCode _eKey) const; + virtual ::rtl::OString getIntlKeywordAscii(InternationalKeyCode _eKey) const; // finds out, if we have an international keyword (only ASCII allowed) - virtual InternationalKeyCode getIntlKeyCode(const ByteString& rToken) const; + virtual InternationalKeyCode getIntlKeyCode(const ::rtl::OString& rToken) const; // determines the default international setting - static const International& getDefaultInternational(); + static const ::com::sun::star::lang::Locale& getDefaultLocale(); }; //========================================================================== @@ -180,28 +192,34 @@ namespace connectivity // informations on the current parse action OParseContext* m_pContext; OSQLParseNode* m_pParseTree; // result from parsing - International* m_pIntl; // current internation settings for parsing - String m_sFieldName; // current field name for a predicate - String m_sErrorMessage;// current error msg + ::com::sun::star::lang::Locale* m_pLocale; // current locale settings for parsing + ::rtl::OUString m_sFieldName; // current field name for a predicate + ::rtl::OUString m_sErrorMessage;// current error msg ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xField; // current field ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > m_xFormatter; // current number formatter sal_Int32 m_nFormatKey; // numberformat, which should be used + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceFactory; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XCharacterClassification> m_xCharClass; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XLocaleData> m_xLocaleData; + + // convert a string into double trim it to scale of _nscale and than transform it back to string + ::rtl::OUString stringToDouble(const ::rtl::OUString& _rValue,sal_Int16 _nScale); public: // if NULL, a default context will be used // the context must live as long as the parser - OSQLParser(OParseContext* _pContext = NULL); + OSQLParser(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xServiceFactory,OParseContext* _pContext = NULL); ~OSQLParser(); // Parsing an SQLStatement - OSQLParseNode* parseTree(String& rErrorMessage, - const String& rStatement, + OSQLParseNode* parseTree(::rtl::OUString& rErrorMessage, + const ::rtl::OUString& rStatement, sal_Bool bInternational = sal_False); // Check a Predicate - OSQLParseNode* predicateTree(String& rErrorMessage, const String& rStatement, + OSQLParseNode* predicateTree(::rtl::OUString& rErrorMessage, const ::rtl::OUString& rStatement, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > & xFormatter, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & xField); @@ -209,26 +227,26 @@ namespace connectivity const OParseContext& getContext() const {return *m_pContext;} // TokenIDToStr: Token-Name zu einer Token-Nr. - static ByteString TokenIDToStr(sal_uInt32 nTokenID, OParseContext* pContext = NULL); + static ::rtl::OString TokenIDToStr(sal_uInt32 nTokenID, OParseContext* pContext = NULL); // StrToTokenID: Token-Nr. zu einem Token-Namen. - // static sal_uInt32 StrToTokenID(const ByteString & rName); + // static sal_uInt32 StrToTokenID(const ::rtl::OString & rName); - // RuleIDToStr gibt den zu einer RuleID gehoerenden String zurueck + // RuleIDToStr gibt den zu einer RuleID gehoerenden ::rtl::OUString zurueck // (Leerstring, falls nicht gefunden) - static String RuleIDToStr(sal_uInt32 nRuleID); + static ::rtl::OUString RuleIDToStr(sal_uInt32 nRuleID); - // StrToRuleID berechnet zu einem String die RuleID (d.h. ::com::sun::star::sdbcx::Index in yytname) + // StrToRuleID berechnet zu einem ::rtl::OUString die RuleID (d.h. ::com::sun::star::sdbcx::Index in yytname) // (0, falls nicht gefunden). Die Suche nach der ID aufgrund eines Strings ist - // extrem ineffizient (sequentielle Suche nach String)! - static sal_uInt32 StrToRuleID(const ByteString & rValue); + // extrem ineffizient (sequentielle Suche nach ::rtl::OUString)! + static sal_uInt32 StrToRuleID(const ::rtl::OString & rValue); // RuleId mit enum, wesentlich effizienter static sal_uInt32 RuleID(OSQLParseNode::Rule eRule); - void error(char *fmt); + void error(sal_Char *fmt); int SQLlex(); #ifdef YYBISON void setParseTree(OSQLParseNode * pNewParseTree); @@ -236,7 +254,7 @@ namespace connectivity // Is the parse in a special mode? // Predicate chack is used to check a condition for a field sal_Bool inPredicateCheck() const {return m_xField.is();} - const String& getFieldName() const {return m_sFieldName;} + const ::rtl::OUString& getFieldName() const {return m_sFieldName;} void reduceLiteral(OSQLParseNode*& pLiteral, sal_Bool bAppendBlank); // does not change the pLiteral argument |