mysqlc: Support reading blob as string

Change-Id: I1ef0c3817bc255e7f0c38aca73c475b19d5d7d9b
Reviewed-on: https://gerrit.libreoffice.org/76600
Tested-by: Jenkins
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
This commit is contained in:
Tamas Bunth
2019-07-30 15:05:35 +02:00
committed by Tamás Bunth
parent 8251c7bd2e
commit cc4c20d08f

View File

@@ -309,7 +309,10 @@ template <> DateTime OPreparedResultSet::retrieveValue(sal_Int32 column)
template <> OUString OPreparedResultSet::retrieveValue(sal_Int32 column)
{
if (getTypeFromMysqlType(m_aFields[column - 1].type) != std::type_index(typeid(OUString)))
// redirect call to the appropiate method if needed
// BLOB can be simply read out as string
if (getTypeFromMysqlType(m_aFields[column - 1].type) != std::type_index(typeid(OUString))
&& m_aFields[column - 1].type != MYSQL_TYPE_BLOB)
return getRowSetValue(column);
const char* sStr = static_cast<const char*>(m_aData[column - 1].buffer);
@@ -344,6 +347,9 @@ ORowSetValue OPreparedResultSet::getRowSetValue(sal_Int32 nColumnIndex)
case MYSQL_TYPE_DECIMAL:
case MYSQL_TYPE_NEWDECIMAL:
return getString(nColumnIndex);
case MYSQL_TYPE_BLOB:
throw SQLException("Column with type BLOB cannot be converted", *this, OUString(), 1,
Any());
default:
SAL_WARN("connectivity.mysqlc", "OPreparedResultSet::getRowSetValue: unknown type: "
<< m_aFields[nColumnIndex - 1].type);