connectivity/source/drivers/odbc/OResultSet.cxx |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 2b8ccebced9ebfcf2f86a13330e9f62c984f38f5
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Tue Jul 30 16:58:30 2024 +0500
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Aug 20 16:41:19 2024 +0200

    tdf#148367: avoid using SQLBulkOperations with SQL_UPDATE_BY_BOOKMARK
    
    ... because that fails with MS Access ODBC 64-bit driver (bug in the
    driver). And SQLSetPos does the job anyway.
    
    Change-Id: I2d356a6a3f6de4d3c2c9a2e49cb3dd8c66af7794
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171270
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    Tested-by: Jenkins
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172111

diff --git a/connectivity/source/drivers/odbc/OResultSet.cxx 
b/connectivity/source/drivers/odbc/OResultSet.cxx
index 7a1e81593d58..e179f9145713 100644
--- a/connectivity/source/drivers/odbc/OResultSet.cxx
+++ b/connectivity/source/drivers/odbc/OResultSet.cxx
@@ -905,6 +905,8 @@ void SAL_CALL OResultSet::updateRow(  )
 
     try
     {
+        /* tdf#148367 this block is commented out, because SQLBulkOperations 
fails
+                      with Access ODBC 64-bit drivers on Windows
         bool bPositionByBookmark = ( nullptr != getOdbcFunction( 
ODBC3SQLFunctionId::BulkOperations ) );
         if ( bPositionByBookmark )
         {
@@ -926,7 +928,7 @@ void SAL_CALL OResultSet::updateRow(  )
             // (neither the contents of aBookmark FWIW)
             assert(nRealLen == aBookmark.getLength());
         }
-        else
+        else */
         {
             nRet = 
N3SQLSetPos(m_aStatementHandle,1,SQL_UPDATE,SQL_LOCK_NO_CHANGE);
             fillNeededData(nRet);

Reply via email to