summaryrefslogtreecommitdiff
path: root/connectivity
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2013-08-27 18:03:21 +0200
committerLionel Elie Mamane <lionel@mamane.lu>2013-08-27 18:50:10 +0200
commit2939a1fa638f63162f0a9741e139e9439144556b (patch)
tree3ae41a2fd4d49725d79970c073476dd9e7e0f70e /connectivity
parent8f9388c0234f59ef4460512cd3a3e9b4727e6363 (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
Diffstat (limited to 'connectivity')
-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 d3969a1eeb4f..a35105e6a5b4 100644
--- a/connectivity/source/drivers/odbcbase/OResultSet.cxx
+++ b/connectivity/source/drivers/odbcbase/OResultSet.cxx
@@ -872,7 +872,6 @@ void SAL_CALL OResultSet::insertRow( ) throw(SQLException, RuntimeException)
&nRealLen
);
- aBookmark.realloc(nRealLen);
sal_Bool bPositionByBookmark = ( NULL != getOdbcFunction( ODBC3SQLBulkOperations ) );
if ( bPositionByBookmark )
{
@@ -886,6 +885,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);