tdf#127657: FIREBIRD error in query input param when referred field is integer
Change-Id: I626c8a8869570986d0293cd9070a1ee40ec585dc
Reviewed-on: https://gerrit.libreoffice.org/79314
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx
index 71a4345..4586cc4 100644
--- a/connectivity/source/drivers/firebird/PreparedStatement.cxx
+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx
@@ -229,6 +229,20 @@
assert( pVar->sqlsubtype == static_cast<short>(BlobSubtype::Clob) );
setClob(nParameterIndex, sInput );
break;
case SQL_SHORT:
{
sal_Int32 int32Value = sInput.toInt32();
if ( (int32Value < std::numeric_limits<sal_Int16>::min()) ||
(int32Value > std::numeric_limits<sal_Int16>::max()) )
{
::dbtools::throwSQLException(
"Value out of range for SQL_SHORT type",
::dbtools::StandardSQLState::INVALID_SQL_DATA_TYPE,
*this);
}
setShort(nParameterIndex, int32Value);
break;
}
default:
::dbtools::throwSQLException(
"Incorrect type for setString",