Implement getTables(). (firebird-sdbc)
Change-Id: I6b13fe51547ac5a51a03bf9b55f8e684275652cb
diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx
index 63daf08a..9dbc87f 100644
--- a/connectivity/source/drivers/firebird/Connection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -766,8 +766,8 @@ void OConnection::clearStatements()
uno::Reference< XNameAccess > SAL_CALL OConnection::getTables()
throw (RuntimeException)
{
// TODO: IMPLEMENT ME PROPERLY
//return new Tables();
return 0;
return new Tables(getMetaData(),
*this,
m_aMutex);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx
index 607fdc3..be3d231 100644
--- a/connectivity/source/drivers/firebird/Tables.cxx
+++ b/connectivity/source/drivers/firebird/Tables.cxx
@@ -26,13 +26,15 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::uno;
Tables::Tables(ODatabaseMetaData& xMetaData,
Tables::Tables(const uno::Reference< XDatabaseMetaData >& rMetaData,
OWeakObject& rParent,
Mutex& rMutex,
const TStringVector& rVector) :
OCollection(rParent, sal_True, rMutex, rVector),
Mutex& rMutex) :
OCollection(rParent,
sal_True,
rMutex,
TStringVector(1, "TABLE")), // std::vector with 1 element
m_rMutex(rMutex),
m_xMetaData(xMetaData)
m_xMetaData(rMetaData)
{
}
@@ -47,10 +49,10 @@ ObjectType Tables::createObject(const OUString& rName)
{
// TODO: parse the name.
// TODO: use table types
uno::Reference< XResultSet > xTables = m_xMetaData.getTables(Any(),
OUString(),
rName,
uno::Sequence< OUString >());
uno::Reference< XResultSet > xTables = m_xMetaData->getTables(Any(),
OUString(),
rName,
uno::Sequence< OUString >());
if (!xTables.is())
throw RuntimeException();
@@ -62,7 +64,7 @@ ObjectType Tables::createObject(const OUString& rName)
ObjectType xRet(new Table(this,
m_rMutex,
m_xMetaData.getConnection(),
m_xMetaData->getConnection(),
xRow->getString(3), // Name
xRow->getString(4), // Type
xRow->getString(5))); // Description / Remarks / Comments
diff --git a/connectivity/source/drivers/firebird/Tables.hxx b/connectivity/source/drivers/firebird/Tables.hxx
index 8128fb4..2f21cd6 100644
--- a/connectivity/source/drivers/firebird/Tables.hxx
+++ b/connectivity/source/drivers/firebird/Tables.hxx
@@ -35,13 +35,13 @@ namespace connectivity
virtual ::connectivity::sdbcx::ObjectType createObject(
const ::rtl::OUString& rName);
ODatabaseMetaData& m_xMetaData;
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >
m_xMetaData;
public:
Tables(ODatabaseMetaData& xMetaData,
Tables(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& rMetaData,
::cppu::OWeakObject& rParent,
::osl::Mutex& rMutex,
const ::connectivity::TStringVector& rVector);
::osl::Mutex& rMutex);
// TODO: we should also implement XDataDescriptorFactory, XRefreshable,
// XAppend, etc., but all are optional.