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,