connectivity/source/drivers/ado/AResultSet.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
New commits: commit 66b67f40a7785f08ae214e62b669e001148b474c Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed Oct 12 16:17:38 2016 +0200 ADO: return correct css::sdbcx::CompareBookmark values css.sdbcx.XRowLocate's compareBookmarks is documented to return values from the css.sdbcx.ConpareBookmark constants group, which has LESS = -1, EQUAL = 0, GREATER = 1, NOT_EQUAL = 2, NOT_COMPARABLE = 3. So in case of equality return EQUAL (0) instead of sal_True (1). And, in the MS SDK's adoint.h, the CompareEnum enum os defined with enumeators adCompareLessThan = 0, adCompareEqual = 1, adCompareGreaterThan = 2, adCompareNotEqual = 3, adCOmpareNotComparable = 4, so mapping from the latter to the former needs to do -1, not +1. Change-Id: I6643da31f326e38153e4ebab9e680b33a6854918 Reviewed-on: https://gerrit.libreoffice.org/29735 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/connectivity/source/drivers/ado/AResultSet.cxx b/connectivity/source/drivers/ado/AResultSet.cxx index 128458bc..020c643 100644 --- a/connectivity/source/drivers/ado/AResultSet.cxx +++ b/connectivity/source/drivers/ado/AResultSet.cxx @@ -22,6 +22,7 @@ #include <com/sun/star/sdbc/DataType.hpp> #include <com/sun/star/sdbc/KeyRule.hpp> #include <com/sun/star/sdbc/IndexType.hpp> +#include <com/sun/star/sdbcx/CompareBookmark.hpp> #include <comphelper/property.hxx> #include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/sdbc/ResultSetConcurrency.hpp> @@ -872,13 +873,13 @@ sal_Int32 SAL_CALL OResultSet::compareBookmarks( const Any& bookmark1, const Any sal_Int32 nPos2 = 0; bookmark2 >>= nPos2; if(nPos1 == nPos2) // they should be equal - return sal_True; + return css::sdbcx::CompareBookmark::EQUAL; OSL_ENSURE((nPos1 >= 0 && nPos1 < (sal_Int32)m_aBookmarks.size()) || (nPos1 >= 0 && nPos2 < (sal_Int32)m_aBookmarks.size()),"Invalid Index for vector"); CompareEnum eNum; m_pRecordSet->CompareBookmarks(m_aBookmarks[nPos1],m_aBookmarks[nPos2],&eNum); - return ((sal_Int32)eNum) +1; + return ((sal_Int32)eNum) - 1; } sal_Bool SAL_CALL OResultSet::hasOrderedBookmarks( ) throw(SQLException, RuntimeException) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits