diff options
author | Ocke Janssen <oj@openoffice.org> | 2001-05-17 08:15:34 +0000 |
---|---|---|
committer | Ocke Janssen <oj@openoffice.org> | 2001-05-17 08:15:34 +0000 |
commit | 9472185a918f24355f0fe4e00c0527914a309fc0 (patch) | |
tree | 6393cdcdd5a0799f321218e599ffa38be2d5bcd3 /connectivity/source/drivers/ado | |
parent | 248a47cc35787ea3aa916b4fc6e4e21a6f324f96 (diff) |
#86528# size changes
Diffstat (limited to 'connectivity/source/drivers/ado')
-rw-r--r-- | connectivity/source/drivers/ado/AConnection.cxx | 11 | ||||
-rw-r--r-- | connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx | 77 | ||||
-rw-r--r-- | connectivity/source/drivers/ado/ADriver.cxx | 12 | ||||
-rw-r--r-- | connectivity/source/drivers/ado/AResultSet.cxx | 31 | ||||
-rw-r--r-- | connectivity/source/drivers/ado/AStatement.cxx | 10 | ||||
-rw-r--r-- | connectivity/source/drivers/ado/Aolevariant.cxx | 527 | ||||
-rw-r--r-- | connectivity/source/drivers/ado/makefile.mk | 5 |
7 files changed, 607 insertions, 66 deletions
diff --git a/connectivity/source/drivers/ado/AConnection.cxx b/connectivity/source/drivers/ado/AConnection.cxx index 9f7493c6423c..5832269f041b 100644 --- a/connectivity/source/drivers/ado/AConnection.cxx +++ b/connectivity/source/drivers/ado/AConnection.cxx @@ -2,9 +2,9 @@ * * $RCSfile: AConnection.cxx,v $ * - * $Revision: 1.12 $ + * $Revision: 1.13 $ * - * last change: $Author: oj $ $Date: 2001-05-17 07:26:59 $ + * last change: $Author: oj $ $Date: 2001-05-17 09:13:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -99,6 +99,9 @@ #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_ #include <cppuhelper/typeprovider.hxx> #endif +#ifndef _DBHELPER_DBEXCEPTION_HXX_ +#include "connectivity/dbexception.hxx" +#endif using namespace dbtools; using namespace connectivity::ado; @@ -194,7 +197,7 @@ void OConnection::construct(const ::rtl::OUString& url,const Sequence< PropertyV else ADOS::ThrowException(*m_pAdoConnection,*this); if(m_pAdoConnection->get_State() != adStateOpen) - throw SQLException(); + ::dbtools::throwFunctionSequenceException(*this); ADOProperties* pProps=m_pAdoConnection->get_Properties(); if(pProps) @@ -214,7 +217,7 @@ void OConnection::construct(const ::rtl::OUString& url,const Sequence< PropertyV //bErg = TRUE; } else - throw SQLException(); + ::dbtools::throwFunctionSequenceException(*this); osl_decrementInterlockedCount( &m_refCount ); } diff --git a/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx b/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx index 6e0b89270ea0..5682feae54da 100644 --- a/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx +++ b/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx @@ -2,9 +2,9 @@ * * $RCSfile: ADatabaseMetaDataResultSet.cxx,v $ * - * $Revision: 1.11 $ + * $Revision: 1.12 $ * - * last change: $Author: oj $ $Date: 2001-05-17 07:30:42 $ + * last change: $Author: oj $ $Date: 2001-05-17 09:13:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -108,7 +108,7 @@ #include <oledb.h> - +using namespace dbtools; using namespace connectivity::ado; using namespace cppu; using namespace ::comphelper; @@ -188,7 +188,12 @@ sal_Int32 SAL_CALL ODatabaseMetaDataResultSet::findColumn( const ::rtl::OUString sal_Int32 nLen = xMeta->getColumnCount(); sal_Int32 i = 1; for(;i<=nLen;++i) - if(xMeta->isCaseSensitive(i) ? columnName == xMeta->getColumnName(i) : columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i))) + if(xMeta->isCaseSensitive(i) ? columnName == xMeta->getColumnName(i) : +#if SUPD > 630 + columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i))) +#else + columnName.equalsIgnoreCase(xMeta->getColumnName(i))) +#endif break; return i; } @@ -200,7 +205,7 @@ Reference< ::com::sun::star::io::XInputStream > SAL_CALL ODatabaseMetaDataResult checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -243,7 +248,7 @@ Reference< ::com::sun::star::io::XInputStream > SAL_CALL ODatabaseMetaDataResult checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); return NULL; @@ -256,7 +261,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::getBoolean( sal_Int32 columnIndex checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -273,7 +278,7 @@ sal_Int8 SAL_CALL ODatabaseMetaDataResultSet::getByte( sal_Int32 columnIndex ) t checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -295,7 +300,7 @@ Sequence< sal_Int8 > SAL_CALL ODatabaseMetaDataResultSet::getBytes( sal_Int32 co checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -312,7 +317,7 @@ Sequence< sal_Int8 > SAL_CALL ODatabaseMetaDataResultSet::getBytes( sal_Int32 co checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -329,7 +334,7 @@ double SAL_CALL ODatabaseMetaDataResultSet::getDouble( sal_Int32 columnIndex ) t checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -346,7 +351,7 @@ float SAL_CALL ODatabaseMetaDataResultSet::getFloat( sal_Int32 columnIndex ) thr checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -363,7 +368,7 @@ sal_Int32 SAL_CALL ODatabaseMetaDataResultSet::getInt( sal_Int32 columnIndex ) t checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -386,7 +391,7 @@ sal_Int32 SAL_CALL ODatabaseMetaDataResultSet::getRow( ) throw(SQLException, Ru checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); return 0; } @@ -398,7 +403,7 @@ sal_Int64 SAL_CALL ODatabaseMetaDataResultSet::getLong( sal_Int32 columnIndex ) checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -412,7 +417,7 @@ Reference< XResultSetMetaData > SAL_CALL ODatabaseMetaDataResultSet::getMetaData checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); if(!m_xMetaData.is()) m_xMetaData = new ODatabaseMetaDataResultSetMetaData(m_pRecordSet,this); @@ -426,7 +431,7 @@ Reference< XArray > SAL_CALL ODatabaseMetaDataResultSet::getArray( sal_Int32 col checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); return NULL; @@ -440,7 +445,7 @@ Reference< XClob > SAL_CALL ODatabaseMetaDataResultSet::getClob( sal_Int32 colum checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); return NULL; @@ -452,7 +457,7 @@ Reference< XBlob > SAL_CALL ODatabaseMetaDataResultSet::getBlob( sal_Int32 colum checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); return NULL; @@ -465,7 +470,7 @@ Reference< XRef > SAL_CALL ODatabaseMetaDataResultSet::getRef( sal_Int32 columnI checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); return NULL; @@ -478,7 +483,7 @@ Any SAL_CALL ODatabaseMetaDataResultSet::getObject( sal_Int32 columnIndex, const checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); return Any(); @@ -491,7 +496,7 @@ sal_Int16 SAL_CALL ODatabaseMetaDataResultSet::getShort( sal_Int32 columnIndex ) checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -514,7 +519,7 @@ sal_Int16 SAL_CALL ODatabaseMetaDataResultSet::getShort( sal_Int32 columnIndex ) checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -536,7 +541,7 @@ sal_Int16 SAL_CALL ODatabaseMetaDataResultSet::getShort( sal_Int32 columnIndex ) checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -554,7 +559,7 @@ sal_Int16 SAL_CALL ODatabaseMetaDataResultSet::getShort( sal_Int32 columnIndex ) checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); columnIndex = mapColumn(columnIndex); ADO_GETFIELD(columnIndex); @@ -571,7 +576,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::isAfterLast( ) throw(SQLException checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); VARIANT_BOOL bIsAtEOF; m_pRecordSet->get_EOF(&bIsAtEOF); @@ -584,7 +589,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::isFirst( ) throw(SQLException, Ru checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); return m_nRowPos == 1; } @@ -595,7 +600,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::isLast( ) throw(SQLException, Run checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); return sal_True; } @@ -606,7 +611,7 @@ void SAL_CALL ODatabaseMetaDataResultSet::beforeFirst( ) throw(SQLException, Ru checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); if(first()) previous(); @@ -618,7 +623,7 @@ void SAL_CALL ODatabaseMetaDataResultSet::afterLast( ) throw(SQLException, Runt checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); if(last()) next(); @@ -724,7 +729,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::rowDeleted( ) throw(SQLException, checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); RecordStatusEnum eRec; m_pRecordSet->get_Status((sal_Int32*)&eRec); @@ -736,7 +741,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::rowInserted( ) throw(SQLException checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); RecordStatusEnum eRec; m_pRecordSet->get_Status((sal_Int32*)&eRec); @@ -749,7 +754,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::rowUpdated( ) throw(SQLException, checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); RecordStatusEnum eRec; m_pRecordSet->get_Status((sal_Int32*)&eRec); @@ -797,7 +802,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::wasNull( ) throw(SQLException, Ru checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); return m_aValue.isNull(); } @@ -808,7 +813,7 @@ void SAL_CALL ODatabaseMetaDataResultSet::refreshRow( ) throw(SQLException, Run checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); m_pRecordSet->Resync(adAffectCurrent,adResyncAllValues); } @@ -820,7 +825,7 @@ void SAL_CALL ODatabaseMetaDataResultSet::cancel( ) throw(RuntimeException) checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed); if(!m_pRecordSet) - throw SQLException(); + throwFunctionSequenceException(*this); m_pRecordSet->Cancel(); } diff --git a/connectivity/source/drivers/ado/ADriver.cxx b/connectivity/source/drivers/ado/ADriver.cxx index 6502f8447b22..88942374e731 100644 --- a/connectivity/source/drivers/ado/ADriver.cxx +++ b/connectivity/source/drivers/ado/ADriver.cxx @@ -2,9 +2,9 @@ * * $RCSfile: ADriver.cxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: oj $ $Date: 2001-04-27 10:08:08 $ + * last change: $Author: oj $ $Date: 2001-05-17 09:13:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -148,11 +148,11 @@ sal_Bool SAL_CALL ODriver::supportsService( const ::rtl::OUString& _rServiceName { Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames()); const ::rtl::OUString* pSupported = aSupported.getConstArray(); - for (sal_Int32 i=0; i<aSupported.getLength(); ++i, ++pSupported) - if (pSupported->equals(_rServiceName)) - return sal_True; + const ::rtl::OUString* pEnd = pSupported + aSupported.getLength(); + for (;pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported) + ; - return sal_False; + return pSupported != pEnd; } // -------------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/ado/AResultSet.cxx b/connectivity/source/drivers/ado/AResultSet.cxx index ef4501c261ef..40665d39c37c 100644 --- a/connectivity/source/drivers/ado/AResultSet.cxx +++ b/connectivity/source/drivers/ado/AResultSet.cxx @@ -2,9 +2,9 @@ * * $RCSfile: AResultSet.cxx,v $ * - * $Revision: 1.9 $ + * $Revision: 1.10 $ * - * last change: $Author: oj $ $Date: 2001-05-17 07:30:42 $ + * last change: $Author: oj $ $Date: 2001-05-17 09:13:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -136,13 +136,13 @@ using namespace com::sun::star::sdbc; // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::supportsService( const ::rtl::OUString& _rServiceName ) throw(::com::sun::star::uno::RuntimeException) { - ::com::sun::star::uno::Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames()); + Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames()); const ::rtl::OUString* pSupported = aSupported.getConstArray(); - for (sal_Int32 i=0; i<aSupported.getLength(); ++i, ++pSupported) - if (pSupported->equals(_rServiceName)) - return sal_True; + const ::rtl::OUString* pEnd = pSupported + aSupported.getLength(); + for (;pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported) + ; - return sal_False; + return pSupported != pEnd; } // ------------------------------------------------------------------------- OResultSet::OResultSet(ADORecordset* _pRecordSet,OStatement_Base* pStmt) : OResultSet_BASE(m_aMutex) @@ -157,7 +157,7 @@ OResultSet::OResultSet(ADORecordset* _pRecordSet,OStatement_Base* pStmt) : ORes osl_incrementInterlockedCount( &m_refCount ); OSL_ENSURE(_pRecordSet,"No RecordSet !"); if(!_pRecordSet) - throw SQLException(); + ::dbtools::throwFunctionSequenceException(*this); m_pRecordSet->AddRef(); VARIANT_BOOL bIsAtBOF; CHECK_RETURN(m_pRecordSet->get_BOF(&bIsAtBOF)) @@ -175,7 +175,7 @@ OResultSet::OResultSet(ADORecordset* _pRecordSet) : OResultSet_BASE(m_aMutex) osl_incrementInterlockedCount( &m_refCount ); OSL_ENSURE(_pRecordSet,"No RecordSet !"); if(!_pRecordSet) - throw SQLException(); + ::dbtools::throwFunctionSequenceException(*this); m_pRecordSet->AddRef(); VARIANT_BOOL bIsAtBOF; CHECK_RETURN(m_pRecordSet->get_BOF(&bIsAtBOF)) @@ -231,7 +231,12 @@ sal_Int32 SAL_CALL OResultSet::findColumn( const ::rtl::OUString& columnName ) t sal_Int32 nLen = xMeta->getColumnCount(); sal_Int32 i = 1; for(;i<=nLen;++i) - if(xMeta->isCaseSensitive(i) ? columnName == xMeta->getColumnName(i) : columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i))) + if(xMeta->isCaseSensitive(i) ? columnName == xMeta->getColumnName(i) : +#if SUPD > 630 + columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i))) +#else + columnName.equalsIgnoreCase(xMeta->getColumnName(i))) +#endif break; return i; } @@ -608,7 +613,7 @@ sal_Bool SAL_CALL OResultSet::absolute( sal_Int32 row ) throw(SQLException, Runt if(!row) // absolute with zero not allowed - throw SQLException(); + ::dbtools::throwFunctionSequenceException(*this); sal_Bool bCheck = sal_True; if(row < 0) @@ -1035,7 +1040,7 @@ sal_Bool SAL_CALL OResultSet::moveToBookmark( const Any& bookmark ) throw(SQLExc bookmark >>= nPos; OSL_ENSURE(nPos >= 0 && nPos < (sal_Int32)m_aBookmarks.size(),"Invalid Index for vector"); if(nPos < 0 || nPos >= (sal_Int32)m_aBookmarks.size()) - throw SQLException(); + ::dbtools::throwFunctionSequenceException(*this); return SUCCEEDED(m_pRecordSet->Move(0,m_aBookmarks[nPos])); } @@ -1051,7 +1056,7 @@ sal_Bool SAL_CALL OResultSet::moveRelativeToBookmark( const Any& bookmark, sal_I nPos += rows; OSL_ENSURE(nPos >= 0 && nPos < (sal_Int32)m_aBookmarks.size(),"Invalid Index for vector"); if(nPos < 0 || nPos >= (sal_Int32)m_aBookmarks.size()) - throw SQLException(); + ::dbtools::throwFunctionSequenceException(*this); return SUCCEEDED(m_pRecordSet->Move(rows,m_aBookmarks[nPos])); } //------------------------------------------------------------------------------ diff --git a/connectivity/source/drivers/ado/AStatement.cxx b/connectivity/source/drivers/ado/AStatement.cxx index 2a4a812bf7d7..ac9b93bcc540 100644 --- a/connectivity/source/drivers/ado/AStatement.cxx +++ b/connectivity/source/drivers/ado/AStatement.cxx @@ -2,9 +2,9 @@ * * $RCSfile: AStatement.cxx,v $ * - * $Revision: 1.10 $ + * $Revision: 1.11 $ * - * last change: $Author: oj $ $Date: 2001-05-17 07:26:59 $ + * last change: $Author: oj $ $Date: 2001-05-17 09:13:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -91,8 +91,8 @@ #ifndef _COM_SUN_STAR_SDBC_FETCHDIRECTION_HPP_ #include <com/sun/star/sdbc/FetchDirection.hpp> #endif -#ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_ -#include <com/sun/star/lang/DisposedException.hpp> +#ifndef _DBHELPER_DBEXCEPTION_HXX_ +#include "connectivity/dbexception.hxx" #endif #define CHECK_RETURN(x) \ @@ -548,7 +548,7 @@ sal_Int32 OStatement_Base::getMaxRows() const throw(SQLException, RuntimeExcepti { sal_Int32 nRet=-1; if(!m_RecordSet.IsValid() && m_RecordSet.get_MaxRecords(nRet)) - throw SQLException(); + ::dbtools::throwFunctionSequenceException(NULL); return nRet; } //------------------------------------------------------------------------------ diff --git a/connectivity/source/drivers/ado/Aolevariant.cxx b/connectivity/source/drivers/ado/Aolevariant.cxx new file mode 100644 index 000000000000..86f935b75e98 --- /dev/null +++ b/connectivity/source/drivers/ado/Aolevariant.cxx @@ -0,0 +1,527 @@ +/************************************************************************* + * + * $RCSfile: Aolevariant.cxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: oj $ $Date: 2001-05-17 09:15:34 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the License); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an AS IS basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _CONNECTIVITY_ADO_AOLEVARIANT_HXX_ +#include "ado/Aolevariant.hxx" +#endif + + +using namespace connectivity::ado; +OLEString::OLEString() + :m_sStr(NULL) +{ +} +OLEString::OLEString(const BSTR& _sBStr) + :m_sStr(_sBStr) +{ +} +OLEString::OLEString(const ::rtl::OUString& _sBStr) +{ + m_sStr = ::SysAllocString(_sBStr); +} +OLEString::~OLEString() +{ + if(m_sStr) + ::SysFreeString(m_sStr); +} +OLEString& OLEString::operator=(const ::rtl::OUString& _rSrc) +{ + if(m_sStr) + ::SysFreeString(m_sStr); + m_sStr = ::SysAllocString(_rSrc); + return *this; +} +OLEString& OLEString::operator=(const BSTR& _rSrc) +{ + if(m_sStr) + ::SysFreeString(m_sStr); + m_sStr = _rSrc; + return *this; +} +OLEString::operator ::rtl::OUString() const +{ + return (m_sStr != NULL) ? ::rtl::OUString(m_sStr,::SysStringLen(m_sStr)) : ::rtl::OUString(); +} +OLEString::operator BSTR() const +{ + return m_sStr; +} +BSTR* OLEString::operator &() +{ + return &m_sStr; +} +sal_Int32 OLEString::length() const +{ + return (m_sStr != NULL) ? ::SysStringLen(m_sStr) : 0; +} + +OLEVariant::OLEVariant() +{ + VariantInit(this); +} +OLEVariant::OLEVariant(const VARIANT& varSrc) +{ + ::VariantInit(this); + ::VariantCopy(this, const_cast<VARIANT*>(&varSrc)); +} +OLEVariant::OLEVariant(const OLEVariant& varSrc) +{ + ::VariantInit(this); + ::VariantCopy(this, const_cast<VARIANT*>(static_cast<const VARIANT*>(&varSrc))); +} + +OLEVariant::OLEVariant(sal_Bool x) { VariantInit(this); vt = VT_BOOL; boolVal = (x ? VARIANT_TRUE : VARIANT_FALSE);} +OLEVariant::OLEVariant(sal_Int8 n) { VariantInit(this); vt = VT_I1; bVal = n;} +OLEVariant::OLEVariant(sal_Int16 n) { VariantInit(this); vt = VT_I2; intVal = n;} +OLEVariant::OLEVariant(sal_Int32 n) { VariantInit(this); vt = VT_I4; lVal = n;} +OLEVariant::OLEVariant(sal_Int64 x) { VariantInit(this); vt = VT_I4; lVal = x;} + +OLEVariant::OLEVariant(const rtl::OUString& us) +{ + ::VariantInit(this); + vt = VT_BSTR; + bstrVal = SysAllocString(us); +} +OLEVariant::~OLEVariant() +{ + ::VariantClear(this); +} // clears all the memory that was allocated before + +OLEVariant::OLEVariant(const ::com::sun::star::util::Date& x ) +{ + VariantInit(this); + vt = VT_R8; + dblVal = ::dbtools::DBTypeConversion::toDouble(x); +} +OLEVariant::OLEVariant(const ::com::sun::star::util::Time& x ) +{ + VariantInit(this); + vt = VT_R8; + dblVal = ::dbtools::DBTypeConversion::toDouble(x); +} +OLEVariant::OLEVariant(const ::com::sun::star::util::DateTime& x ) +{ + VariantInit(this); + vt = VT_R8; + dblVal = ::dbtools::DBTypeConversion::toDouble(x); +} +OLEVariant::OLEVariant(const float &x) +{ + VariantInit(this); + vt = VT_R4; + fltVal = x; +} +OLEVariant::OLEVariant(const double &x) +{ + VariantInit(this); + vt = VT_R8; + dblVal = x; +} + + +OLEVariant::OLEVariant(IDispatch* pDispInterface) +{ + VariantInit(this); + vt = VT_DISPATCH; + pdispVal = pDispInterface; +} + +OLEVariant::OLEVariant(const ::com::sun::star::uno::Sequence< sal_Int8 >& x) +{ + VariantInit(this); + vt = VT_ARRAY|VT_UI1; + parray = SafeArrayCreateVector(VT_UI1, 0, x.getLength()); + const sal_Int8* pBegin = x.getConstArray(); + const sal_Int8* pEnd = pBegin + x.getLength(); + for(sal_Int32 i=0;pBegin != pEnd;++i,++pBegin) + SafeArrayPutElement(parray,&i,&pBegin); +} + +OLEVariant& OLEVariant::operator=(const OLEVariant& varSrc) +{ + VariantCopy(this, const_cast<VARIANT*>(static_cast<const VARIANT*>(&varSrc))); + return *this; +} +// Assign a const VARIANT& (::VariantCopy handles everything) +// +OLEVariant& OLEVariant::operator=(const tagVARIANT& varSrc) +{ + ::VariantCopy(this, const_cast<VARIANT*>(&varSrc)); + + return *this; +} + +// Assign a const VARIANT* (::VariantCopy handles everything) +// +OLEVariant& OLEVariant::operator=(const VARIANT* pSrc) +{ + ::VariantCopy(this, const_cast<VARIANT*>(pSrc)); + + return *this; +} + +void OLEVariant::setByte(sal_uInt8 n) { VariantClear(this); vt = VT_UI1; bVal = n;} +void OLEVariant::setInt16(sal_Int16 n) { VariantClear(this); vt = VT_I2; iVal = n;} +void OLEVariant::setInt32(sal_Int32 n) { VariantClear(this); vt = VT_I4; lVal = n;} +void OLEVariant::setFloat(float f) { VariantClear(this); vt = VT_R4; fltVal = f;} +void OLEVariant::setDouble(double d) { VariantClear(this); vt = VT_R8; dblVal = d;} +void OLEVariant::setDate(DATE d) { VariantClear(this); vt = VT_DATE; date = d;} +void OLEVariant::setChar(unsigned char a) { VariantClear(this); vt = VT_UI1; bVal = a;} +void OLEVariant::setCurrency(double aCur) { VariantClear(this); vt = VT_CY; set(aCur*10000);} +void OLEVariant::setBool(sal_Bool b) { VariantClear(this); vt = VT_BOOL; boolVal = b ? VARIANT_TRUE : VARIANT_FALSE;} +void OLEVariant::setString(const rtl::OUString& us){ VariantClear(this); vt = VT_BSTR; bstrVal = ::SysAllocString(us);} +void OLEVariant::setNoArg() { VariantClear(this); vt = VT_ERROR; scode = DISP_E_PARAMNOTFOUND;} + +void OLEVariant::setIDispatch(IDispatch* pDispInterface) + { VariantClear(this); vt = VT_DISPATCH; pdispVal = pDispInterface;} + +void OLEVariant::setNull() { VariantClear(this); vt = VT_NULL;} +void OLEVariant::setEmpty() { VariantClear(this); vt = VT_EMPTY;} + +void OLEVariant::setUI1SAFEARRAYPtr(SAFEARRAY* pSafeAr) + { VariantClear(this); vt = VT_ARRAY|VT_UI1; parray = pSafeAr; } + +void OLEVariant::setArray(SAFEARRAY* pSafeArray, VARTYPE vtType) + { VariantClear(this); vt = VT_ARRAY|vtType; parray = pSafeArray; } + +sal_Bool OLEVariant::isNull() const { return (vt == VT_NULL); } +sal_Bool OLEVariant::isEmpty() const { return (vt == VT_EMPTY); } + +VARTYPE OLEVariant::getType() const { return vt; } + +OLEVariant::operator ::com::sun::star::util::Date() const +{ + return connectivity::DateConversion::toDate(date,::com::sun::star::util::Date(30,12,1899)); +} +OLEVariant::operator ::com::sun::star::util::Time() const +{ + return connectivity::DateConversion::toTime(date); +} +OLEVariant::operator ::com::sun::star::util::DateTime()const +{ + return connectivity::DateConversion::toDateTime(date,::com::sun::star::util::Date(30,12,1899)); +} + +VARIANT_BOOL OLEVariant::VariantBool(sal_Bool bEinBoolean) +{ + return (bEinBoolean ? VARIANT_TRUE : VARIANT_FALSE); +} + +void OLEVariant::CHS() +{ + cyVal.Lo ^= (sal_uInt32)-1; + cyVal.Hi ^= -1; + cyVal.Lo++; + if( !cyVal.Lo ) + cyVal.Hi++; +} + +void OLEVariant::set(double n) +{ + if( n >= 0 ) + { + cyVal.Hi = (sal_Int32)(n / (double)4294967296.0); + cyVal.Lo = (sal_uInt32)(n - ((double)cyVal.Hi * (double)4294967296.0)); + } + else { + cyVal.Hi = (sal_Int32)(-n / (double)4294967296.0); + cyVal.Lo = (sal_uInt32)(-n - ((double)cyVal.Hi * (double)4294967296.0)); + CHS(); + } +} + +OLEVariant::operator rtl::OUString() const +{ + if (V_VT(this) == VT_BSTR) + return V_BSTR(this); + + + OLEVariant varDest; + + varDest.ChangeType(VT_BSTR, this); + + return V_BSTR(&varDest); +} +// ----------------------------------------------------------------------------- +OLEVariant::operator ::com::sun::star::uno::Sequence< sal_Int8 >() const +{ + ::com::sun::star::uno::Sequence< sal_Int8 > aRet; + if(V_VT(this) == VT_BSTR) + { + OLEString sStr(V_BSTR(this)); + aRet = ::com::sun::star::uno::Sequence<sal_Int8>(reinterpret_cast<const sal_Int8*>((const wchar_t*)sStr),sizeof(sal_Unicode)*sStr.length()); + } + else + { + SAFEARRAY* pArray = getUI1SAFEARRAYPtr(); + + if(pArray) + { + HRESULT hresult1,hresult2; + long lBound,uBound; + // Verify that the SafeArray is the proper shape. + hresult1 = ::SafeArrayGetLBound(pArray, 1, &lBound); + hresult2 = ::SafeArrayGetUBound(pArray, 1, &uBound); + if(SUCCEEDED(hresult1) && SUCCEEDED(hresult2)) + { + long nIndex = 0; + long nCount = uBound-lBound+1; + aRet.realloc(nCount); + for(long i=0;i<nCount;++i) + { + ::SafeArrayGetElement(pArray,&nIndex,(void*)aRet.getArray()[i]); + } + } + } + } + + return aRet; +} +// ----------------------------------------------------------------------------- +::rtl::OUString OLEVariant::getString() const +{ + return (rtl::OUString)*this; +} +// ----------------------------------------------------------------------------- +sal_Bool OLEVariant::getBool() const +{ + if (V_VT(this) == VT_BOOL) + return V_BOOL(this) == VARIANT_TRUE ? sal_True : sal_False; + + OLEVariant varDest; + + varDest.ChangeType(VT_BOOL, this); + + return V_BOOL(&varDest) == VARIANT_TRUE ? sal_True : sal_False; +} +// ----------------------------------------------------------------------------- +IUnknown* OLEVariant::getIUnknown() const +{ + if (V_VT(this) == VT_UNKNOWN) + { + V_UNKNOWN(this)->AddRef(); + return V_UNKNOWN(this); + } + + OLEVariant varDest; + + varDest.ChangeType(VT_UNKNOWN, this); + + V_UNKNOWN(&varDest)->AddRef(); + return V_UNKNOWN(&varDest); +} +// ----------------------------------------------------------------------------- +IDispatch* OLEVariant::getIDispatch() const +{ + if (V_VT(this) == VT_DISPATCH) + { + V_DISPATCH(this)->AddRef(); + return V_DISPATCH(this); + } + + OLEVariant varDest; + + varDest.ChangeType(VT_DISPATCH, this); + + V_DISPATCH(&varDest)->AddRef(); + return V_DISPATCH(&varDest); +} +// ----------------------------------------------------------------------------- +sal_uInt8 OLEVariant::getByte() const +{ + if (V_VT(this) == VT_UI1) + return V_UI1(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_UI1, this); + + return V_UI1(&varDest); +} +// ----------------------------------------------------------------------------- +sal_Int16 OLEVariant::getInt16() const +{ + if (V_VT(this) == VT_I2) + return V_I2(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_I2, this); + + return V_I2(&varDest); +} +// ----------------------------------------------------------------------------- +sal_Int8 OLEVariant::getInt8() const +{ + if (V_VT(this) == VT_I1) + return V_I1(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_I1, this); + + return V_I1(&varDest); +} +// ----------------------------------------------------------------------------- +sal_Int32 OLEVariant::getInt32() const +{ + if (V_VT(this) == VT_I4) + return V_I4(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_I4, this); + + return V_I4(&varDest); +} +// ----------------------------------------------------------------------------- +sal_uInt32 OLEVariant::getUInt32() const +{ + if (V_VT(this) == VT_UI4) + return V_UI4(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_UI4, this); + + return V_UI4(&varDest); +} +// ----------------------------------------------------------------------------- +float OLEVariant::getFloat() const +{ + if (V_VT(this) == VT_R4) + return V_R4(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_R4, this); + + return V_R4(&varDest); +} +// ----------------------------------------------------------------------------- +double OLEVariant::getDouble() const +{ + if (V_VT(this) == VT_R8) + return V_R8(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_R8, this); + + return V_R8(&varDest); +} +// ----------------------------------------------------------------------------- +double OLEVariant::getDate() const +{ + if (V_VT(this) == VT_DATE) + return V_DATE(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_DATE, this); + + return V_DATE(&varDest); +} +// ----------------------------------------------------------------------------- +CY OLEVariant::getCurrency() const +{ + if (V_VT(this) == VT_CY) + return V_CY(this); + + OLEVariant varDest; + + varDest.ChangeType(VT_CY, this); + + return V_CY(&varDest); +} +// ----------------------------------------------------------------------------- +SAFEARRAY* OLEVariant::getUI1SAFEARRAYPtr() const +{ + if (V_VT(this) == (VT_ARRAY|VT_UI1)) + return V_ARRAY(this); + + OLEVariant varDest; + + varDest.ChangeType((VT_ARRAY|VT_UI1), this); + + return V_ARRAY(&varDest); +} +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +void OLEVariant::ChangeType(VARTYPE vartype, const OLEVariant* pSrc) +{ + // + // If pDest is NULL, convert type in place + // + if (pSrc == NULL) + pSrc = this; + + if ((this != pSrc) || (vartype != V_VT(this))) + { + if(FAILED(::VariantChangeType(static_cast<VARIANT*>(this), + const_cast<VARIANT*>(static_cast<const VARIANT*>(pSrc)), + 0, vartype))) + throw ::com::sun::star::sdbc::SQLException(::rtl::OUString::createFromAscii("Could convert type!"),NULL,::rtl::OUString(),1000,::com::sun::star::uno::Any()); + } +} + diff --git a/connectivity/source/drivers/ado/makefile.mk b/connectivity/source/drivers/ado/makefile.mk index 2fd2f0a41efd..145653fa4817 100644 --- a/connectivity/source/drivers/ado/makefile.mk +++ b/connectivity/source/drivers/ado/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.6 $ +# $Revision: 1.7 $ # -# last change: $Author: oj $ $Date: 2001-05-14 11:40:04 $ +# last change: $Author: oj $ $Date: 2001-05-17 09:13:23 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -80,6 +80,7 @@ ENVCFLAGS+=/FR$(SLO)$/ # --- Files ------------------------------------- SLOFILES=\ + $(SLO)$/Aolevariant.obj \ $(SLO)$/Awrapado.obj \ $(SLO)$/ADatabaseMetaData.obj \ $(SLO)$/AColumn.obj \ |