From c252b744f6404b6761787abb883c81b27f85a6e2 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 18 Aug 2022 08:39:23 +0200 Subject: [PATCH] fix(ODBC): bindImplLOB zero size (or NULL) HY104 'Invalid precision value' #3744 --- Data/ODBC/include/Poco/Data/ODBC/Binder.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Data/ODBC/include/Poco/Data/ODBC/Binder.h b/Data/ODBC/include/Poco/Data/ODBC/Binder.h index 473691b29..92fc6f1ed 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/Binder.h +++ b/Data/ODBC/include/Poco/Data/ODBC/Binder.h @@ -424,6 +424,8 @@ private: SQLLEN* pLenIn = new SQLLEN; *pLenIn = size; + // prevent SQLSTATE = HY104 "Invalid precision value" + SQLULEN columnSize = size ? size : 1; if (PB_AT_EXEC == _paramBinding) *pLenIn = SQL_LEN_DATA_AT_EXEC(size); @@ -435,7 +437,7 @@ private: SQL_PARAM_INPUT, SQL_C_BINARY, SQL_LONGVARBINARY, - (SQLUINTEGER) size, + columnSize, 0, pVal, (SQLINTEGER) size,