21#include <com/sun/star/lang/DisposedException.hpp>
22#include <com/sun/star/sdbc/XConnection.hpp>
23#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
24#include <com/sun/star/sdbc/SQLException.hpp>
41using namespace ::
cppu;
46OPreparedStatement::OPreparedStatement(
const Reference< XConnection > & _xConn,
47 const Reference< XInterface > & _xStatement)
50 m_xAggregateAsParameters.set( m_xAggregateAsSet, UNO_QUERY_THROW );
52 Reference<XDatabaseMetaData> xMeta = _xConn->getMetaData();
53 m_pColumns.reset(
new OColumns(*
this, m_aMutex, xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers(),std::vector< OUString>(),
nullptr,
nullptr) );
56OPreparedStatement::~OPreparedStatement()
77 return css::uno::Sequence<sal_Int8>();
84 if (!aIface.hasValue())
85 aIface = ::cppu::queryInterface(
87 static_cast< XServiceInfo *
>(
this ),
88 static_cast< XParameters *
>(
this ),
89 static_cast< XColumnsSupplier *
>(
this ),
90 static_cast< XResultSetMetaDataSupplier *
>(
this ),
91 static_cast< XPreparedBatchExecution *
>(
this ),
92 static_cast< XMultipleResults *
>(
this ),
93 static_cast< XPreparedStatement *
>(
this ));
110 return "com.sun.star.sdb.OPreparedStatement";
138 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
145 Reference< XResultSetMetaDataSupplier > xSuppMeta(
m_xAggregateAsSet, UNO_QUERY_THROW );
146 Reference< XResultSetMetaData > xMetaData( xSuppMeta->getMetaData(), UNO_SET_THROW );
148 Reference< XConnection > xConn(
getConnection(), UNO_SET_THROW );
149 Reference< XDatabaseMetaData > xDBMeta( xConn->getMetaData(), UNO_SET_THROW );
151 for (sal_Int32
i = 0,
nCount = xMetaData->getColumnCount();
i <
nCount; ++
i)
154 OUString
aName = xMetaData->getColumnName(
i + 1);
165 catch (
const SQLException& )
178 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
179 return Reference< XResultSetMetaDataSupplier >(
m_xAggregateAsSet, UNO_QUERY_THROW )->getMetaData();
186 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
190 Reference< XResultSet > xResultSet;
191 Reference< XResultSet > xDrvResultSet = Reference< XPreparedStatement >(
m_xAggregateAsSet, UNO_QUERY_THROW )->executeQuery();
192 if (xDrvResultSet.is())
205 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
209 return Reference< XPreparedStatement >(
m_xAggregateAsSet, UNO_QUERY_THROW )->executeUpdate();
215 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
219 return Reference< XPreparedStatement >(
m_xAggregateAsSet, UNO_QUERY_THROW )->execute();
224 return Reference< XConnection > (
m_xParent, UNO_QUERY);
231 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
239 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
247 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
255 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
263 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
271 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
279 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
287 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
295 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
303 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
311 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
319 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
327 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
335 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
343 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
351 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
359 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
367 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
375 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
383 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
391 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
399 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
407 ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
virtual void SAL_CALL acquire() noexcept override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
css::uno::WeakReferenceHelper m_aResultSet
virtual void SAL_CALL release() noexcept override
virtual void SAL_CALL disposing() override
css::uno::Reference< css::beans::XPropertySet > m_xAggregateAsSet
css::uno::Reference< css::uno::XInterface > m_xParent
mutable::osl::Mutex m_aMutex
virtual void SAL_CALL setBytes(sal_Int32 parameterIndex, const css::uno::Sequence< sal_Int8 > &x) override
virtual sal_Bool SAL_CALL execute() override
virtual css::uno::Reference< css::sdbc::XResultSetMetaData > SAL_CALL getMetaData() override
virtual void SAL_CALL setTimestamp(sal_Int32 parameterIndex, const css::util::DateTime &x) override
virtual void SAL_CALL setObject(sal_Int32 parameterIndex, const css::uno::Any &x) override
virtual void SAL_CALL setDate(sal_Int32 parameterIndex, const css::util::Date &x) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual void SAL_CALL setNull(sal_Int32 parameterIndex, sal_Int32 sqlType) override
virtual css::uno::Reference< css::sdbc::XConnection > SAL_CALL getConnection() override
virtual void SAL_CALL setObjectNull(sal_Int32 parameterIndex, sal_Int32 sqlType, const OUString &typeName) override
virtual void SAL_CALL setByte(sal_Int32 parameterIndex, sal_Int8 x) override
virtual void SAL_CALL setTime(sal_Int32 parameterIndex, const css::util::Time &x) override
virtual void SAL_CALL setArray(sal_Int32 parameterIndex, const css::uno::Reference< css::sdbc::XArray > &x) override
virtual void SAL_CALL setRef(sal_Int32 parameterIndex, const css::uno::Reference< css::sdbc::XRef > &x) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual void SAL_CALL setCharacterStream(sal_Int32 parameterIndex, const css::uno::Reference< css::io::XInputStream > &x, sal_Int32 length) override
virtual void SAL_CALL acquire() noexcept override
virtual void SAL_CALL setBoolean(sal_Int32 parameterIndex, sal_Bool x) override
virtual void SAL_CALL setObjectWithInfo(sal_Int32 parameterIndex, const css::uno::Any &x, sal_Int32 targetSqlType, sal_Int32 scale) override
virtual css::uno::Reference< css::sdbc::XResultSet > SAL_CALL executeQuery() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getColumns() override
virtual void SAL_CALL setBinaryStream(sal_Int32 parameterIndex, const css::uno::Reference< css::io::XInputStream > &x, sal_Int32 length) override
std::unique_ptr< OColumns > m_pColumns
virtual void SAL_CALL setDouble(sal_Int32 parameterIndex, double x) override
virtual void SAL_CALL setShort(sal_Int32 parameterIndex, sal_Int16 x) override
virtual void SAL_CALL setString(sal_Int32 parameterIndex, const OUString &x) override
virtual void SAL_CALL release() noexcept override
virtual void SAL_CALL setInt(sal_Int32 parameterIndex, sal_Int32 x) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual sal_Int32 SAL_CALL executeUpdate() override
virtual void SAL_CALL setClob(sal_Int32 parameterIndex, const css::uno::Reference< css::sdbc::XClob > &x) override
virtual OUString SAL_CALL getImplementationName() override
virtual void SAL_CALL setBlob(sal_Int32 parameterIndex, const css::uno::Reference< css::sdbc::XBlob > &x) override
virtual void SAL_CALL clearParameters() override
virtual void SAL_CALL disposing() override
css::uno::Reference< css::sdbc::XParameters > m_xAggregateAsParameters
virtual void SAL_CALL setFloat(sal_Int32 parameterIndex, float x) override
virtual void SAL_CALL setLong(sal_Int32 parameterIndex, sal_Int64 x) override
#define DBG_UNHANDLED_EXCEPTION(...)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
constexpr OUStringLiteral SERVICE_SDBC_PREPAREDSTATEMENT
constexpr OUStringLiteral SERVICE_SDB_PREPAREDSTATEMENT