connectivity/source/drivers/odbcbase/OTools.cxx | 4 ++-- dbaccess/source/core/api/KeySet.cxx | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-)
New commits: commit 24ea39d7260dd536a24f50fa4a0b7e0cc9ea9896 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 15:42:27 2012 +0200 OKeySet::refreshRow: Invalidate m_xRow/m_xSet when BeforeFirst or AfterLast Change-Id: I0f48c099eddc077b2a89e3b7fab66b5da55b57c8 diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx index 13464c4..49f4636 100644 --- a/dbaccess/source/core/api/KeySet.cxx +++ b/dbaccess/source/core/api/KeySet.cxx @@ -1334,12 +1334,13 @@ bool OKeySet::doTryRefetch_throw() throw(SQLException, RuntimeException) void SAL_CALL OKeySet::refreshRow() throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "ocke.jans...@sun.com", "OKeySet::refreshRow" ); - if(isBeforeFirst() || isAfterLast() || !m_xStatement.is()) - return; m_xRow = NULL; ::comphelper::disposeComponent(m_xSet); + if(isBeforeFirst() || isAfterLast() || !m_xStatement.is()) + return; + if ( m_aKeyIter->second.second.second.is() ) { m_xRow = m_aKeyIter->second.second.second; commit e7e21a6feae30c29c956235d071ebb0805c5afb2 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 14:52:46 2012 +0200 organise & comment code better Continuation of commits to fix fdo#48345 Change-Id: Ie28f6a55cd8715a7180f5d88fe23c5b310440744 diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx index d94609b..13464c4 100644 --- a/dbaccess/source/core/api/KeySet.cxx +++ b/dbaccess/source/core/api/KeySet.cxx @@ -1106,10 +1106,16 @@ sal_Bool SAL_CALL OKeySet::next( ) throw(SQLException, RuntimeException) if(isAfterLast()) return sal_False; ++m_aKeyIter; - if(!m_bRowCountFinal) // not yet all records fetched + if(!m_bRowCountFinal && m_aKeyIter == m_aKeyMap.end()) { - if(m_aKeyIter == m_aKeyMap.end() && !fetchRow()) + // not yet all records fetched, but we reached the end of those we fetched + // try to fetch one more row + if (!fetchRow()) + { + // nope, we arrived at end of data m_aKeyIter = m_aKeyMap.end(); + OSL_ENSURE(isAfterLast(), "fetchRow failed, but not end of data"); + } } refreshRow(); commit 13b45d774088f55b07388e69f44a98468ea64a06 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 14:49:02 2012 +0200 Update comments Change-Id: I7e3f09d61cb35165000a35c8d3c3f2d284cf164e diff --git a/connectivity/source/drivers/odbcbase/OTools.cxx b/connectivity/source/drivers/odbcbase/OTools.cxx index df74076..9910859 100644 --- a/connectivity/source/drivers/odbcbase/OTools.cxx +++ b/connectivity/source/drivers/odbcbase/OTools.cxx @@ -693,8 +693,8 @@ Sequence<sal_Int8> OTools::getBytesValue(OConnection* _pConnection, --nLen; aData.append(::rtl::OUString((const sal_Char*)aCharArray,nLen, _nTextEncoding)); - // It is about Binariy Data, a String, that for StarView is to long or - // the driver kan't predict the length of the data - as well as save the + // It is about Binary Data, a String, that for StarView is too long or + // the driver can't predict the length of the data - as well as save the // MemoryStream. while ((pcbValue == SQL_NO_TOTAL) || pcbValue > nMaxLen) { commit 3c436c2b0c74367dfdbbae96090be2f9828765ce Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 11:38:59 2012 +0200 dbaccess::OKeySet::wasNull(): OSL_ENSURE we have a m_xRow Change-Id: I087d2893d853f431d27c592ba26bdc16e0a9cb84 diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx index f462b9b..d94609b 100644 --- a/dbaccess/source/core/api/KeySet.cxx +++ b/dbaccess/source/core/api/KeySet.cxx @@ -1416,6 +1416,7 @@ void OKeySet::fillAllRows() sal_Bool SAL_CALL OKeySet::wasNull( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "ocke.jans...@sun.com", "OKeySet::wasNull" ); + OSL_ENSURE(m_xRow.is(),"m_xRow is null!"); return m_xRow->wasNull(); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits