summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2013-08-27 18:03:21 +0200
committerCaolán McNamara <caolanm@redhat.com>2013-09-03 12:00:08 +0000
commiteed831380d3fdadc7defdbe66e7a8275507ca748 (patch)
tree738d0595f284da6fa363bb33ea0aea94c34e001a
parenteb0aef67c76e23e77be12deda0acfb2475368fa2 (diff)
odbc insert: adjust buffer size *after* it is written to
the buffer (aBookmark) is written to by SQLBulkOperations or SQLSetPos, not by SQLBindCol, which merely sets up the instruction that the next call should write there. So its finak size is known only *after* the call that makes the write, obviously. Change-Id: I4faaaeffc060433645188f0eda3d9958b087cf6c Reviewed-on: https://gerrit.libreoffice.org/5651 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--connectivity/source/drivers/odbcbase/OResultSet.cxx2
1 files changed, 1 insertions, 1 deletions
diff --git a/connectivity/source/drivers/odbcbase/OResultSet.cxx b/connectivity/source/drivers/odbcbase/OResultSet.cxx
index eb6c32894824..f540f8b4734b 100644
--- a/connectivity/source/drivers/odbcbase/OResultSet.cxx
+++ b/connectivity/source/drivers/odbcbase/OResultSet.cxx
@@ -871,7 +871,6 @@ void SAL_CALL OResultSet::insertRow( ) throw(SQLException, RuntimeException)
&nRealLen
);
- aBookmark.realloc(nRealLen);
sal_Bool bPositionByBookmark = ( NULL != getOdbcFunction( ODBC3SQLBulkOperations ) );
if ( bPositionByBookmark )
{
@@ -885,6 +884,7 @@ void SAL_CALL OResultSet::insertRow( ) throw(SQLException, RuntimeException)
nRet = N3SQLSetPos( m_aStatementHandle, 1, SQL_ADD, SQL_LOCK_NO_CHANGE );
fillNeededData( nRet );
}
+ aBookmark.realloc(nRealLen);
try
{
OTools::ThrowException(m_pStatement->getOwnConnection(),nRet,m_aStatementHandle,SQL_HANDLE_STMT,*this);