connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.cxx |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

New commits:
commit 44eac6530c9692eeaf51efdbd2f5f37180c9c214
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Mon Jul 11 21:09:24 2022 +0200
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Mon Jul 11 22:45:29 2022 +0200

    tdf#149951: MySQL/MariaDB (direct connection) save images in BLOB-fields
    
    There were several pbs:
    1) no size value was given to resetSqlVar whereas all BLOB or related need 
an explicit size so was 0
    => provide size value with x.getLength()
    2) Type provided was Sequence instead of a sal_Int8 so unitSize was 8 
instead of 1
    => provide "&x[0]" instead of "&x"
    3) m_bindMetas[nIndex].length wasn't filled
    => initialize it with x.getLength()
    
    Change-Id: Iaca6a8f8142601c224d6f7aabe4414e61586d29f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136964
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>

diff --git a/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.cxx 
b/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.cxx
index 6ec6a89f175c..3c1c6d88ec4a 100644
--- a/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.cxx
+++ b/connectivity/source/drivers/mysqlc/mysqlc_preparedstatement.cxx
@@ -493,9 +493,10 @@ void SAL_CALL OPreparedStatement::setBytes(sal_Int32 
parameter, const Sequence<s
     checkParameterIndex(parameter);
 
     const sal_Int32 nIndex = parameter - 1;
-    m_binds[nIndex].buffer_type = MYSQL_TYPE_BLOB; // FIXME
-    mysqlc_sdbc_driver::resetSqlVar(&m_binds[nIndex].buffer, &x, 
MYSQL_TYPE_BLOB);
+    m_binds[nIndex].buffer_type = MYSQL_TYPE_BLOB;
+    mysqlc_sdbc_driver::resetSqlVar(&m_binds[nIndex].buffer, &x[0], 
MYSQL_TYPE_BLOB, x.getLength());
     m_bindMetas[nIndex].is_null = false;
+    m_bindMetas[nIndex].length = x.getLength();
 }
 
 void SAL_CALL OPreparedStatement::setCharacterStream(sal_Int32 parameter,

Reply via email to