diff options
author | David Ostrovsky <david@ostrovsky.org> | 2012-09-30 19:53:40 +0200 |
---|---|---|
committer | Muthu Subramanian <sumuthu@suse.com> | 2012-10-10 13:35:13 +0530 |
commit | 36026a6ae5d2f42db5fa262a358a3bc8e33e036c (patch) | |
tree | b27b7da466dde7e719f1c4db0fb50516470021dc /connectivity/source/drivers/mork/MDatabaseMetaDataHelper.cxx | |
parent | f6739073edc1b593035f25becbd0e9d6d536ef0c (diff) |
mork driver: add list tables and unit test
Change-Id: I594b24341eb38c05523f578c1dc2e43d90544f30
Diffstat (limited to 'connectivity/source/drivers/mork/MDatabaseMetaDataHelper.cxx')
-rw-r--r-- | connectivity/source/drivers/mork/MDatabaseMetaDataHelper.cxx | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/connectivity/source/drivers/mork/MDatabaseMetaDataHelper.cxx b/connectivity/source/drivers/mork/MDatabaseMetaDataHelper.cxx index a22b660650a8..1507b8b6ec2e 100644 --- a/connectivity/source/drivers/mork/MDatabaseMetaDataHelper.cxx +++ b/connectivity/source/drivers/mork/MDatabaseMetaDataHelper.cxx @@ -31,6 +31,8 @@ static ::osl::Mutex m_aMetaMutex; #include <com/sun/star/sdb/ErrorCondition.hpp> #include <comphelper/processfactory.hxx> +#include "MorkParser.hxx" + using namespace connectivity; using namespace connectivity::mork; @@ -52,11 +54,21 @@ sal_Bool MDatabaseMetaDataHelper::getTableStrings( OConnection* ::rtl::OString sAbURIString; SAL_INFO("connectivity.mork", "=> MDatabaseMetaDataHelper::getTableStrings()"); - _pCon->getMorkParser(); - // TODO: retrieve Tables from MorkParser - // only put for now the private adress book - rtl::OUString table = rtl::OUString::createFromAscii( "AddressBook"); + + /* add default table */ + OUString table = "AddressBook"; _rStrings.push_back(table); + + /* retrieve list table names */ + std::set<std::string> lists; + _pCon->getMorkParser()->retrieveLists(lists); + for (::std::set<std::string>::iterator iter = lists.begin(); iter != lists.end(); ++iter) { + OUString groupTableName = OStringToOUString((*iter).c_str(), RTL_TEXTENCODING_UTF8); + SAL_INFO("connectivity.mork", "add Table " << groupTableName); + + _rStrings.push_back(groupTableName); + } + return( sal_True ); } @@ -70,14 +82,14 @@ sal_Bool MDatabaseMetaDataHelper::getTables( OConnection* _pCon, static ODatabaseMetaDataResultSet::ORows aRows; SAL_INFO("connectivity.mork", "=> MDatabaseMetaDataHelper::getTables()" ); + SAL_INFO("connectivity.mork", "tableNamePattern : " << tableNamePattern); ::osl::MutexGuard aGuard( m_aMetaMutex ); ODatabaseMetaDataResultSet::ORows().swap(aRows); // this makes real clear where memory is freed as well aRows.clear(); ::std::vector< ::rtl::OUString > tables; -// ::std::vector< ::rtl::OUString > tabletypes; - ::rtl::OUString matchAny = rtl::OUString::createFromAscii("%"); + OUString matchAny = "%"; if ( !getTableStrings( _pCon, tables ) ) return sal_False; @@ -86,21 +98,20 @@ sal_Bool MDatabaseMetaDataHelper::getTables( OConnection* _pCon, ODatabaseMetaDataResultSet::ORow aRow(3); ::rtl::OUString aTableName = tables[i]; - //::rtl::OUString aTableType = tabletypes[i]; SAL_INFO("connectivity.mork", "TableName: " << aTableName ); // return tables to caller if (match( tableNamePattern, aTableName, '\0' )) - { + { if ( aTableName.isEmpty() ) { - aTableName = rtl::OUString::createFromAscii("AddressBook"); + aTableName = "AddressBook"; } SAL_INFO("connectivity.mork", "TableName: " << aTableName); aRow.push_back( new ORowSetValueDecorator( aTableName ) ); // Table name - aRow.push_back( new ORowSetValueDecorator( rtl::OUString::createFromAscii("TABLE") ) ); // Table type + aRow.push_back( new ORowSetValueDecorator( OUString::createFromAscii("TABLE") ) ); // Table type aRow.push_back( ODatabaseMetaDataResultSet::getEmptyValue() ); // Remarks aRows.push_back(aRow); } |