fix(ODBC): Poco:Data::ODBC - MSSQL (n)varchar(max) length issue #4324 (#4738)

* fix(ODBC): Poco:Data::ODBC - MSSQL (n)varchar(max) length issue #4324

* chore(ODBC): remove unused vars; fix SQL Server SDK include path #4324

* fix(ODBC): trim UTF16 string #4324

* chore(ODBC): add compile time big string diagnostics #4324

* chore(ODBC): add SQLServer big string vector test case #4324

* fix(ODBC): detect SQLServer header #4324

* chore: add listing msodbdcsql18 folder #4324

* ci: change odbc drivers installation order #4324

* chore(CMake): Add option ENABLE_DATA_SQL_SERVER_BIG_STRINGS, auto-detection of msodbcsql.h on Linux and macOS

* fix(ODBC): detect backend at runtime for string size; add Session::dbmsName() #4324

* fix(ODBC): wrong char to string conversion #4324

---------

Co-authored-by: cunj123 <n.belusic@pta.hr>
Co-authored-by: Matej Kenda <matejken@gmail.com>
This commit is contained in:
Aleksandar Fabijanic
2024-10-19 14:43:00 -05:00
committed by GitHub
parent 9a97e7ca0d
commit 36c808230c
32 changed files with 558 additions and 198 deletions

View File

@@ -2426,14 +2426,14 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder)
catch(DataException& ce)
{
std::cout << ce.displayText() << std::endl;
fail (__func__, __LINE__, __FILE__);
failmsg (__func__);
}
try { session() << "SELECT COUNT(*) FROM Person", into(count), now; }
catch(DataException& ce)
{
std::cout << ce.displayText() << std::endl;
fail (__func__, __LINE__, __FILE__);
failmsg (__func__);
}
assertTrue (count == 1);
@@ -2444,7 +2444,7 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder)
catch(DataException& ce)
{
std::cout << ce.displayText() << std::endl;
fail (__func__, __LINE__, __FILE__);
failmsg (__func__);
}
assertTrue (res == img);
@@ -2459,7 +2459,7 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder)
catch(DataException& ce)
{
std::cout << ce.displayText() << std::endl;
fail (__func__, __LINE__, __FILE__);
failmsg (__func__);
}
try
@@ -2470,7 +2470,7 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder)
catch(DataException& ce)
{
std::cout << ce.displayText() << std::endl;
fail (__func__, __LINE__, __FILE__);
failmsg (__func__);
}
// sometimes throws (intentionally, caught in caller)