Implement refreshTables. (firebird-sdbc)
Change-Id: Ie2fe0c92c3cb1eb0ae68cdea8ad709021a8d8392
diff --git a/connectivity/source/drivers/firebird/Catalog.cxx b/connectivity/source/drivers/firebird/Catalog.cxx
index 552889a..0f84c94 100644
--- a/connectivity/source/drivers/firebird/Catalog.cxx
+++ b/connectivity/source/drivers/firebird/Catalog.cxx
@@ -8,11 +8,15 @@
*/
#include "Catalog.hxx"
#include "Tables.hxx"
using namespace ::connectivity::firebird;
using namespace ::rtl;
using namespace ::com::sun::star;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::uno;
Catalog::Catalog(const uno::Reference< XConnection >& rConnection):
OCatalog(rConnection),
@@ -23,8 +27,24 @@ Catalog::Catalog(const uno::Reference< XConnection >& rConnection):
//----- OCatalog -------------------------------------------------------------
void Catalog::refreshTables()
{
// TODO: implement me.
// Sets m_pTables (OCatalog)
// TODO: set type -- currenty we also get system tables...
uno::Reference< XResultSet > xTables = m_xMetaData->getTables(Any(),
"%",
"%",
Sequence< OUString >());
TStringVector aTableNames;
fillNames(xTables, aTableNames);
if (!m_pTables)
m_pTables = new Tables(m_xConnection->getMetaData(),
*this,
m_aMutex,
aTableNames);
else
m_pTables->reFill(aTableNames);
}
void Catalog::refreshViews()
diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx
index be3d231..8828b972 100644
--- a/connectivity/source/drivers/firebird/Tables.cxx
+++ b/connectivity/source/drivers/firebird/Tables.cxx
@@ -28,11 +28,12 @@ using namespace ::com::sun::star::uno;
Tables::Tables(const uno::Reference< XDatabaseMetaData >& rMetaData,
OWeakObject& rParent,
Mutex& rMutex) :
Mutex& rMutex,
TStringVector& rNames) :
OCollection(rParent,
sal_True,
rMutex,
TStringVector(1, "TABLE")), // std::vector with 1 element
rNames),
m_rMutex(rMutex),
m_xMetaData(rMetaData)
{
diff --git a/connectivity/source/drivers/firebird/Tables.hxx b/connectivity/source/drivers/firebird/Tables.hxx
index 2f21cd6..c025e1b 100644
--- a/connectivity/source/drivers/firebird/Tables.hxx
+++ b/connectivity/source/drivers/firebird/Tables.hxx
@@ -41,7 +41,8 @@ namespace connectivity
public:
Tables(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& rMetaData,
::cppu::OWeakObject& rParent,
::osl::Mutex& rMutex);
::osl::Mutex& rMutex,
::connectivity::TStringVector& rNames);
// TODO: we should also implement XDataDescriptorFactory, XRefreshable,
// XAppend, etc., but all are optional.