diff options
Diffstat (limited to 'connectivity/source')
27 files changed, 69 insertions, 37 deletions
diff --git a/connectivity/source/cpool/ZPooledConnection.cxx b/connectivity/source/cpool/ZPooledConnection.cxx index 42e8d6c02db7..6cabc1ce2e29 100644 --- a/connectivity/source/cpool/ZPooledConnection.cxx +++ b/connectivity/source/cpool/ZPooledConnection.cxx @@ -65,7 +65,7 @@ Reference< XConnection > OPooledConnection::getConnection() if (m_xComponent.is()) m_xComponent->addEventListener(this); } - return Reference< XConnection >(m_xComponent,UNO_QUERY); + return m_xComponent; } diff --git a/connectivity/source/cpool/ZPooledConnection.hxx b/connectivity/source/cpool/ZPooledConnection.hxx index 79450ea081d3..0f5506f4f3b1 100644 --- a/connectivity/source/cpool/ZPooledConnection.hxx +++ b/connectivity/source/cpool/ZPooledConnection.hxx @@ -22,10 +22,11 @@ #include <com/sun/star/sdbc/XPooledConnection.hpp> #include <com/sun/star/lang/XEventListener.hpp> #include <com/sun/star/reflection/XProxyFactory.hpp> - +#include <rtl/ref.hxx> namespace connectivity { + class OConnectionWeakWrapper; // OPooledConnection - // allows to pool a real connection @@ -37,7 +38,7 @@ namespace connectivity ,public OPooledConnection_Base { css::uno::Reference< css::sdbc::XConnection > m_xRealConnection; // the connection from driver - css::uno::Reference< css::lang::XComponent > m_xComponent; // the connection which wraps the real connection + rtl::Reference< OConnectionWeakWrapper > m_xComponent; // the connection which wraps the real connection css::uno::Reference< css::reflection::XProxyFactory > m_xProxyFactory; public: // OComponentHelper diff --git a/connectivity/source/drivers/evoab2/NPreparedStatement.hxx b/connectivity/source/drivers/evoab2/NPreparedStatement.hxx index cd42d42d505b..076216e0cf42 100644 --- a/connectivity/source/drivers/evoab2/NPreparedStatement.hxx +++ b/connectivity/source/drivers/evoab2/NPreparedStatement.hxx @@ -47,7 +47,7 @@ namespace connectivity::evoab // the EBookQuery we're working with QueryData m_aQueryData; // our meta data - css::uno::Reference< css::sdbc::XResultSetMetaData > m_xMetaData; + rtl::Reference<OEvoabResultSetMetaData> m_xMetaData; virtual ~OEvoabPreparedStatement() override; diff --git a/connectivity/source/drivers/file/FPreparedStatement.cxx b/connectivity/source/drivers/file/FPreparedStatement.cxx index 33ca5a3b47d7..5139eba871cd 100644 --- a/connectivity/source/drivers/file/FPreparedStatement.cxx +++ b/connectivity/source/drivers/file/FPreparedStatement.cxx @@ -128,6 +128,11 @@ css::uno::Sequence< css::uno::Type > SAL_CALL OPreparedStatement::getTypes( ) Reference< XResultSetMetaData > SAL_CALL OPreparedStatement::getMetaData( ) { + return getMetaDataImpl(); +} + +const rtl::Reference< OResultSetMetaData > & OPreparedStatement::getMetaDataImpl( ) +{ ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -377,7 +382,7 @@ void OPreparedStatement::initResultSet(OResultSet *pResultSet) m_pConnection->throwGenericSQLException(STR_INVALID_PARA_COUNT,*this); pResultSet->OpenImpl(); - pResultSet->setMetaData(getMetaData()); + pResultSet->setMetaData(getMetaDataImpl()); } void SAL_CALL OPreparedStatement::acquire() noexcept diff --git a/connectivity/source/drivers/firebird/PreparedStatement.hxx b/connectivity/source/drivers/firebird/PreparedStatement.hxx index 42e540664dda..96f687c38123 100644 --- a/connectivity/source/drivers/firebird/PreparedStatement.hxx +++ b/connectivity/source/drivers/firebird/PreparedStatement.hxx @@ -33,7 +33,7 @@ namespace connectivity::firebird { - + class OResultSetMetaData; class OBoundParam; typedef ::cppu::ImplHelper5< css::sdbc::XPreparedStatement, css::sdbc::XParameters, @@ -46,7 +46,7 @@ namespace connectivity::firebird { protected: OUString m_sSqlStatement; - css::uno::Reference< css::sdbc::XResultSetMetaData > m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; XSQLDA* m_pOutSqlda; XSQLDA* m_pInSqlda; diff --git a/connectivity/source/drivers/firebird/ResultSet.hxx b/connectivity/source/drivers/firebird/ResultSet.hxx index c80f5b8453d4..046be37c567a 100644 --- a/connectivity/source/drivers/firebird/ResultSet.hxx +++ b/connectivity/source/drivers/firebird/ResultSet.hxx @@ -39,6 +39,7 @@ namespace connectivity::firebird { + class OResultSetMetaData; /* ** OResultSet */ @@ -73,7 +74,7 @@ namespace connectivity::firebird ::osl::Mutex& m_rMutex; const css::uno::Reference< css::uno::XInterface >& m_xStatement; - css::uno::Reference< css::sdbc::XResultSetMetaData> m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; XSQLDA* m_pSqlda; isc_stmt_handle m_statementHandle; diff --git a/connectivity/source/drivers/firebird/StatementCommonBase.cxx b/connectivity/source/drivers/firebird/StatementCommonBase.cxx index 096c0ce436bd..12ce9a8fd7ba 100644 --- a/connectivity/source/drivers/firebird/StatementCommonBase.cxx +++ b/connectivity/source/drivers/firebird/StatementCommonBase.cxx @@ -19,6 +19,7 @@ #include "StatementCommonBase.hxx" #include "Util.hxx" +#include "ResultSet.hxx" #include <sal/log.hxx> #include <comphelper/sequence.hxx> @@ -62,9 +63,8 @@ OStatementCommonBase::~OStatementCommonBase() void OStatementCommonBase::disposeResultSet() { - uno::Reference< XComponent > xComp(m_xResultSet, UNO_QUERY); - if (xComp.is()) - xComp->dispose(); + if (m_xResultSet.is()) + m_xResultSet->dispose(); m_xResultSet.clear(); } diff --git a/connectivity/source/drivers/firebird/StatementCommonBase.hxx b/connectivity/source/drivers/firebird/StatementCommonBase.hxx index fa9cd790272e..92eac1ec521d 100644 --- a/connectivity/source/drivers/firebird/StatementCommonBase.hxx +++ b/connectivity/source/drivers/firebird/StatementCommonBase.hxx @@ -38,6 +38,7 @@ namespace connectivity::firebird { + class OResultSet; typedef ::cppu::WeakComponentImplHelper< css::sdbc::XWarningsSupplier, css::util::XCancellable, @@ -52,7 +53,7 @@ namespace connectivity::firebird protected: ::osl::Mutex m_aMutex; - css::uno::Reference< css::sdbc::XResultSet> m_xResultSet; // The last ResultSet created + rtl::Reference<OResultSet> m_xResultSet; // The last ResultSet created // for this Statement ::rtl::Reference<Connection> m_pConnection; diff --git a/connectivity/source/drivers/jdbc/ResultSet.cxx b/connectivity/source/drivers/jdbc/ResultSet.cxx index 0473ed598d2e..e88fb9600138 100644 --- a/connectivity/source/drivers/jdbc/ResultSet.cxx +++ b/connectivity/source/drivers/jdbc/ResultSet.cxx @@ -74,7 +74,7 @@ java_sql_ResultSet::java_sql_ResultSet( JNIEnv * pEnv, jobject myObj, const java SDBThreadAttach::addRef(); osl_atomic_increment(&m_refCount); if ( pStmt ) - m_xStatement = *pStmt; + m_xStatement = pStmt; osl_atomic_decrement(&m_refCount); } @@ -452,7 +452,7 @@ sal_Bool SAL_CALL java_sql_ResultSet::previous( ) Reference< XInterface > SAL_CALL java_sql_ResultSet::getStatement( ) { - return m_xStatement; + return cppu::getXWeak(m_xStatement.get()); } diff --git a/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.hxx b/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.hxx index 40912c5534a7..4374fc7ad091 100644 --- a/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.hxx +++ b/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.hxx @@ -57,7 +57,7 @@ class OPreparedResultSet final : public cppu::BaseMutex, { OConnection& m_rConnection; css::uno::WeakReferenceHelper m_aStatement; - css::uno::Reference<css::sdbc::XResultSetMetaData> m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; // non-owning pointers MYSQL_RES* m_pResult; diff --git a/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.hxx b/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.hxx index e1743d91dbc4..d61f616372b0 100644 --- a/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.hxx +++ b/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.hxx @@ -41,6 +41,8 @@ using my_bool = bool; using my_bool = char; #endif +class OResultSetMetaData; + struct BindMetaData { my_bool is_null = false; @@ -55,7 +57,7 @@ typedef ::cppu::ImplHelper4<css::sdbc::XPreparedStatement, css::sdbc::XParameter class OPreparedStatement final : public OCommonStatement, public OPreparedStatement_BASE { unsigned int m_paramCount = 0; // number of placeholders - Reference<XResultSetMetaData> m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; MYSQL_STMT* m_pStmt; std::vector<MYSQL_BIND> m_binds; std::vector<BindMetaData> m_bindMetas; diff --git a/connectivity/source/drivers/mysqlc/mysqlc_resultset.hxx b/connectivity/source/drivers/mysqlc/mysqlc_resultset.hxx index 3e43853d364e..bb2dc18fc9e2 100644 --- a/connectivity/source/drivers/mysqlc/mysqlc_resultset.hxx +++ b/connectivity/source/drivers/mysqlc/mysqlc_resultset.hxx @@ -41,6 +41,7 @@ namespace connectivity::mysqlc { using ::com::sun::star::uno::Any; +class OResultSetMetaData; /* ** OResultSet @@ -62,7 +63,7 @@ class OResultSet final : public cppu::BaseMutex, std::vector<OUString> m_aFields; MYSQL* m_pMysql = nullptr; css::uno::WeakReferenceHelper m_aStatement; - css::uno::Reference<css::sdbc::XResultSetMetaData> m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; MYSQL_RES* m_pResult; rtl_TextEncoding m_encoding; bool m_bWasNull = false; // did the last getXXX result null? diff --git a/connectivity/source/drivers/mysqlc/mysqlc_statement.cxx b/connectivity/source/drivers/mysqlc/mysqlc_statement.cxx index 49a16cd5c6c5..2d8deaebdec1 100644 --- a/connectivity/source/drivers/mysqlc/mysqlc_statement.cxx +++ b/connectivity/source/drivers/mysqlc/mysqlc_statement.cxx @@ -51,8 +51,7 @@ void OCommonStatement::closeResultSet() { if (m_xResultSet.is()) { - css::uno::Reference<css::sdbc::XCloseable> xClose(m_xResultSet, UNO_QUERY_THROW); - xClose->close(); + m_xResultSet->close(); m_xResultSet.clear(); } } diff --git a/connectivity/source/drivers/mysqlc/mysqlc_statement.hxx b/connectivity/source/drivers/mysqlc/mysqlc_statement.hxx index c710b0b46a6d..7e260fe8b144 100644 --- a/connectivity/source/drivers/mysqlc/mysqlc_statement.hxx +++ b/connectivity/source/drivers/mysqlc/mysqlc_statement.hxx @@ -39,6 +39,7 @@ namespace connectivity::mysqlc using ::com::sun::star::sdbc::SQLWarning; using ::com::sun::star::uno::Any; using ::com::sun::star::uno::Type; +class OResultSet; typedef ::cppu::WeakComponentImplHelper3<css::sdbc::XWarningsSupplier, css::util::XCancellable, css::sdbc::XCloseable> @@ -59,7 +60,7 @@ private: protected: rtl::Reference<OConnection> m_xConnection; // The owning Connection object - css::uno::Reference<css::sdbc::XResultSet> m_xResultSet; + rtl::Reference<OResultSet> m_xResultSet; // number of rows affected by an UPDATE, DELETE or INSERT statement. sal_Int32 m_nAffectedRows = 0; diff --git a/connectivity/source/drivers/odbc/OPreparedStatement.cxx b/connectivity/source/drivers/odbc/OPreparedStatement.cxx index 8e20c4d83e03..b382b34e9eb5 100644 --- a/connectivity/source/drivers/odbc/OPreparedStatement.cxx +++ b/connectivity/source/drivers/odbc/OPreparedStatement.cxx @@ -83,6 +83,11 @@ css::uno::Sequence< css::uno::Type > SAL_CALL OPreparedStatement::getTypes( ) Reference< XResultSetMetaData > SAL_CALL OPreparedStatement::getMetaData( ) { + return getMetaDataImpl(); +} + +const rtl::Reference< OResultSetMetaData > & OPreparedStatement::getMetaDataImpl() +{ ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -907,7 +912,7 @@ void OPreparedStatement::checkParameterIndex(sal_Int32 _parameterIndex) rtl::Reference<OResultSet> OPreparedStatement::createResultSet() { rtl::Reference<OResultSet> pReturn = new OResultSet(m_aStatementHandle,this); - pReturn->setMetaData(getMetaData()); + pReturn->setMetaData(getMetaDataImpl()); return pReturn; } diff --git a/connectivity/source/drivers/postgresql/pq_connection.cxx b/connectivity/source/drivers/postgresql/pq_connection.cxx index 50c1b54fd698..17f4128c8297 100644 --- a/connectivity/source/drivers/postgresql/pq_connection.cxx +++ b/connectivity/source/drivers/postgresql/pq_connection.cxx @@ -148,7 +148,6 @@ void Connection::close() vectorDispose.push_back( Reference< XComponent > ( m_settings.users, UNO_QUERY ) ); vectorDispose.push_back( Reference< XComponent > ( m_settings.tables , UNO_QUERY ) ); - vectorDispose.push_back( Reference< XComponent > ( m_meta, UNO_QUERY ) ); m_meta.clear(); m_settings.tables.clear(); m_settings.users.clear(); diff --git a/connectivity/source/drivers/postgresql/pq_connection.hxx b/connectivity/source/drivers/postgresql/pq_connection.hxx index 2bba070a7273..2b86ce5882fd 100644 --- a/connectivity/source/drivers/postgresql/pq_connection.hxx +++ b/connectivity/source/drivers/postgresql/pq_connection.hxx @@ -66,6 +66,8 @@ namespace pq_sdbc_driver { struct ConnectionSettings; +class DatabaseMetaData; + struct ConnectionSettings { ConnectionSettings() : @@ -123,7 +125,7 @@ class Connection : public ConnectionBase css::uno::Reference< css::container::XNameAccess > m_typeMap; ConnectionSettings m_settings; ::rtl::Reference< comphelper::RefCountedMutex > m_xMutex; - css::uno::Reference< css::sdbc::XDatabaseMetaData > m_meta; + rtl::Reference< DatabaseMetaData > m_meta; WeakHashMap m_myStatements; private: diff --git a/connectivity/source/drivers/postgresql/pq_xkey.hxx b/connectivity/source/drivers/postgresql/pq_xkey.hxx index 68f05fd27d4e..d162fde24270 100644 --- a/connectivity/source/drivers/postgresql/pq_xkey.hxx +++ b/connectivity/source/drivers/postgresql/pq_xkey.hxx @@ -48,6 +48,7 @@ namespace pq_sdbc_driver { +class KeyColumnDescriptors; class Key : public ReflectionBase, public css::sdbcx::XColumnsSupplier @@ -87,7 +88,7 @@ public: // XDataDescriptorFactory class KeyDescriptor : public ReflectionBase, public css::sdbcx::XColumnsSupplier { - css::uno::Reference< css::container::XNameAccess > m_keyColumns; + rtl::Reference<KeyColumnDescriptors> m_keyColumns; public: KeyDescriptor( const ::rtl::Reference< comphelper::RefCountedMutex > & refMutex, diff --git a/connectivity/source/drivers/postgresql/pq_xtable.hxx b/connectivity/source/drivers/postgresql/pq_xtable.hxx index 7c8ca73f566b..d1239fff696e 100644 --- a/connectivity/source/drivers/postgresql/pq_xtable.hxx +++ b/connectivity/source/drivers/postgresql/pq_xtable.hxx @@ -117,7 +117,7 @@ class TableDescriptor public css::sdbcx::XIndexesSupplier, public css::sdbcx::XKeysSupplier { - css::uno::Reference< css::container::XNameAccess > m_columns; + rtl::Reference<ColumnDescriptors> m_columns; css::uno::Reference< css::container::XIndexAccess > m_keys; css::uno::Reference< css::container::XNameAccess > m_indexes; diff --git a/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx b/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx index f0a3fef76d00..28c504ee416b 100644 --- a/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx +++ b/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx @@ -40,6 +40,8 @@ namespace connectivity { + class ODatabaseMetaDataResultSetMetaData; + typedef ::comphelper::WeakComponentImplHelper< css::sdbc::XResultSet, css::sdbc::XRow, css::sdbc::XResultSetMetaDataSupplier, @@ -106,7 +108,7 @@ namespace connectivity private: ORowSetValue m_aEmptyValue; css::uno::WeakReferenceHelper m_aStatement; - css::uno::Reference< css::sdbc::XResultSetMetaData> m_xMetaData; + rtl::Reference< ODatabaseMetaDataResultSetMetaData> m_xMetaData; sal_Int32 m_nColPos; sal_Int32 m_nFetchSize; diff --git a/connectivity/source/inc/TDatabaseMetaDataBase.hxx b/connectivity/source/inc/TDatabaseMetaDataBase.hxx index 4d8c7715ca2d..de5d25ac3233 100644 --- a/connectivity/source/inc/TDatabaseMetaDataBase.hxx +++ b/connectivity/source/inc/TDatabaseMetaDataBase.hxx @@ -27,8 +27,11 @@ #include <functional> #include <connectivity/dbtoolsdllapi.hxx> +namespace comphelper { class OEventListenerHelper; } + namespace connectivity { + class OOO_DLLPUBLIC_DBTOOLS ODatabaseMetaDataBase : public cppu::BaseMutex, public ::cppu::WeakImplHelper< css::sdbc::XDatabaseMetaData2, @@ -65,7 +68,7 @@ namespace connectivity } protected: css::uno::Reference< css::sdbc::XConnection > m_xConnection; - css::uno::Reference< css::lang::XEventListener> m_xListenerHelper; // forward the calls from the connection to me + rtl::Reference< comphelper::OEventListenerHelper> m_xListenerHelper; // forward the calls from the connection to me virtual ~ODatabaseMetaDataBase() override; diff --git a/connectivity/source/inc/file/FPreparedStatement.hxx b/connectivity/source/inc/file/FPreparedStatement.hxx index f83d74a6d065..7adbf40d2b7f 100644 --- a/connectivity/source/inc/file/FPreparedStatement.hxx +++ b/connectivity/source/inc/file/FPreparedStatement.hxx @@ -29,6 +29,7 @@ namespace connectivity::file { + class OResultSetMetaData; class OOO_DLLPUBLIC_FILE SAL_NO_VTABLE OPreparedStatement : public OStatement_BASE2, public css::sdbc::XPreparedStatement, @@ -42,7 +43,7 @@ namespace connectivity::file // Data attributes OValueRefRow m_aParameterRow; - css::uno::Reference< css::sdbc::XResultSetMetaData> m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; ::rtl::Reference<connectivity::OSQLColumns> m_xParamColumns; // the parameter columns @@ -113,6 +114,8 @@ namespace connectivity::file virtual void SAL_CALL close( ) override; // XResultSetMetaDataSupplier virtual css::uno::Reference< css::sdbc::XResultSetMetaData > SAL_CALL getMetaData( ) override; + + const rtl::Reference<OResultSetMetaData> & getMetaDataImpl(); }; } diff --git a/connectivity/source/inc/file/FResultSet.hxx b/connectivity/source/inc/file/FResultSet.hxx index 0870593e6388..b4c1786fd2d5 100644 --- a/connectivity/source/inc/file/FResultSet.hxx +++ b/connectivity/source/inc/file/FResultSet.hxx @@ -41,9 +41,12 @@ #include <TSkipDeletedSet.hxx> #include <com/sun/star/lang/XEventListener.hpp> #include <o3tl/safeint.hxx> +#include "FResultSetMetaData.hxx" namespace connectivity::file { + class OResultSetMetaData; + typedef ::cppu::WeakComponentImplHelper< css::sdbc::XResultSet, css::sdbc::XRow, css::sdbc::XResultSetMetaDataSupplier, @@ -96,7 +99,7 @@ namespace connectivity::file sal_Int32 m_nResultSetConcurrency; css::uno::Reference< css::uno::XInterface> m_xStatement; - css::uno::Reference< css::sdbc::XResultSetMetaData> m_xMetaData; + rtl::Reference< OResultSetMetaData> m_xMetaData; css::uno::Reference< css::container::XNameAccess> m_xColNames; // table columns css::uno::Reference< css::container::XIndexAccess> m_xColsIdx; // table columns @@ -267,7 +270,7 @@ namespace connectivity::file void setOrderByColumns(std::vector<sal_Int32>&& _aColumnOrderBy) { m_aOrderbyColumnNumber = std::move(_aColumnOrderBy); } void setOrderByAscending(std::vector<TAscendingOrder>&& _aOrderbyAsc) { m_aOrderbyAscending = std::move(_aOrderbyAsc); } - void setMetaData(const css::uno::Reference< css::sdbc::XResultSetMetaData>& _xMetaData) { m_xMetaData = _xMetaData;} + void setMetaData(const rtl::Reference< OResultSetMetaData>& _xMetaData) { m_xMetaData = _xMetaData;} static void setBoundedColumns(const OValueRefRow& _rRow, const OValueRefRow& _rSelectRow, diff --git a/connectivity/source/inc/java/sql/ResultSet.hxx b/connectivity/source/inc/java/sql/ResultSet.hxx index 183c6fa3a362..2b4190ba956e 100644 --- a/connectivity/source/inc/java/sql/ResultSet.hxx +++ b/connectivity/source/inc/java/sql/ResultSet.hxx @@ -59,7 +59,7 @@ namespace connectivity public ::cppu::OPropertySetHelper, public ::comphelper::OPropertyArrayUsageHelper<java_sql_ResultSet> { - css::uno::Reference< css::uno::XInterface> m_xStatement; + rtl::Reference<java_sql_Statement_Base> m_xStatement; java::sql::ConnectionLog m_aLogger; java_sql_Connection* m_pConnection; diff --git a/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx b/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx index b0dc5cec35db..4b151b2517ed 100644 --- a/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx +++ b/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx @@ -42,6 +42,7 @@ namespace connectivity::odbc { + class OResultSetMetaData; /* ** java_sql_ResultSet */ @@ -68,8 +69,7 @@ namespace connectivity::odbc SQLHANDLE m_aStatementHandle; // ... until freed css::uno::WeakReferenceHelper m_aStatement; - css::uno::Reference< css::sdbc::XResultSetMetaData> - m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; std::unique_ptr<SQLUSMALLINT[]> m_pRowStatusArray; rtl::Reference<OConnection> m_pConnection; rtl_TextEncoding m_nTextEncoding; diff --git a/connectivity/source/inc/odbc/OPreparedStatement.hxx b/connectivity/source/inc/odbc/OPreparedStatement.hxx index aa5e895bfc79..348c355453e6 100644 --- a/connectivity/source/inc/odbc/OPreparedStatement.hxx +++ b/connectivity/source/inc/odbc/OPreparedStatement.hxx @@ -30,7 +30,7 @@ namespace connectivity::odbc { - + class OResultSetMetaData; class OBoundParam; typedef ::cppu::ImplHelper5< css::sdbc::XPreparedStatement, css::sdbc::XParameters, @@ -51,7 +51,7 @@ namespace connectivity::odbc std::unique_ptr<OBoundParam[]> boundParams; // Array of bound parameter objects. Each parameter marker will have a // corresponding object to hold bind information, and resulting data. - css::uno::Reference< css::sdbc::XResultSetMetaData > m_xMetaData; + rtl::Reference<OResultSetMetaData> m_xMetaData; bool m_bPrepared; void FreeParams(); @@ -137,6 +137,7 @@ namespace connectivity::odbc virtual void SAL_CALL close( ) override; // XResultSetMetaDataSupplier virtual css::uno::Reference< css::sdbc::XResultSetMetaData > SAL_CALL getMetaData( ) override; + const rtl::Reference< OResultSetMetaData > & getMetaDataImpl(); public: using OStatement_Base::executeQuery; diff --git a/connectivity/source/inc/odbc/OResultSet.hxx b/connectivity/source/inc/odbc/OResultSet.hxx index 5c8328082904..c7638a18d8b9 100644 --- a/connectivity/source/inc/odbc/OResultSet.hxx +++ b/connectivity/source/inc/odbc/OResultSet.hxx @@ -40,9 +40,11 @@ #include <connectivity/FValue.hxx> #include <TSkipDeletedSet.hxx> #include <memory> +#include "OResultSetMetaData.hxx" namespace connectivity::odbc { + class OResultSetMetaData; /* ** java_sql_ResultSet @@ -132,7 +134,7 @@ namespace connectivity::odbc OStatement_Base* m_pStatement; std::unique_ptr<OSkipDeletedSet> m_pSkipDeletedSet; css::uno::Reference< css::uno::XInterface> m_xStatement; - css::uno::Reference< css::sdbc::XResultSetMetaData> m_xMetaData; + rtl::Reference< OResultSetMetaData> m_xMetaData; std::unique_ptr<SQLUSMALLINT[]> m_pRowStatusArray; rtl_TextEncoding m_nTextEncoding; sal_Int32 m_nRowPos; @@ -235,7 +237,7 @@ namespace connectivity::odbc return css::uno::Reference< css::uno::XInterface >(*static_cast<OResultSet_BASE*>(this)); } - void setMetaData(const css::uno::Reference< css::sdbc::XResultSetMetaData>& _xMetaData) { m_xMetaData = _xMetaData;} + void setMetaData(const rtl::Reference<OResultSetMetaData>& _xMetaData) { m_xMetaData = _xMetaData;} // ::cppu::OComponentHelper virtual void SAL_CALL disposing() override; |