summaryrefslogtreecommitdiff
path: root/connectivity/inc/connectivity
diff options
context:
space:
mode:
authorOcke Janssen <oj@openoffice.org>2000-10-19 10:47:14 +0000
committerOcke Janssen <oj@openoffice.org>2000-10-19 10:47:14 +0000
commit0cd2621b09a421fa1afd7e0297be852b1f79ee59 (patch)
tree71472273640eaea67e1374dc5dc8160835184357 /connectivity/inc/connectivity
parent616df3d2a25cec2b8c99a35234350fd8a95c1748 (diff)
remove tools from dbtools
Diffstat (limited to 'connectivity/inc/connectivity')
-rw-r--r--connectivity/inc/connectivity/dbconversion.hxx141
-rw-r--r--connectivity/inc/connectivity/sdbcx/VDescriptor.hxx5
-rw-r--r--connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx6
-rw-r--r--connectivity/inc/connectivity/sqliterator.hxx60
-rw-r--r--connectivity/inc/connectivity/sqlnode.hxx80
-rw-r--r--connectivity/inc/connectivity/sqlparse.hxx64
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