# HG changeset patch # User Alain Mazy # Date 1738659993 -3600 # Node ID 77b9684c57b4c0b375ddff3bb33a6dd1e0cb38a9 # Parent a79bfa4910c9395b0fdd6b98f4bf0e1e67ea6b59 fix PG ODBC diff -r a79bfa4910c9 -r 77b9684c57b4 Framework/Plugins/IndexBackend.cpp --- a/Framework/Plugins/IndexBackend.cpp Mon Feb 03 18:52:22 2025 +0100 +++ b/Framework/Plugins/IndexBackend.cpp Tue Feb 04 10:06:33 2025 +0100 @@ -2332,15 +2332,6 @@ } } - void PrepareStatement(DatabaseManager::StandaloneStatement& statement) const - { - statement.SetReadOnly(true); - - for (size_t i = 0; i < count_; i++) - { - statement.SetParameterType(FormatParameter(i), ValueType_Utf8String); - } - } const Dictionary& GetDictionary() const { @@ -2457,9 +2448,10 @@ } } - DatabaseManager::StandaloneStatement statement(manager, sql); - formatter.PrepareStatement(statement); - + Query::Parameters parametersTypes; + formatter.GetDictionary().GetParametersType(parametersTypes); + + DatabaseManager::StandaloneStatement statement(manager, sql, parametersTypes); statement.Execute(formatter.GetDictionary()); while (!statement.IsDone()) @@ -3304,7 +3296,10 @@ sql = "WITH Lookup AS (" + lookupSql + ") SELECT COUNT(*) FROM Lookup"; - DatabaseManager::CachedStatement statement(STATEMENT_FROM_HERE_DYNAMIC(sql), manager, sql); + Query::Parameters parametersTypes; + formatter.GetDictionary().GetParametersType(parametersTypes); + + DatabaseManager::CachedStatement statement(STATEMENT_FROM_HERE_DYNAMIC(sql), manager, sql, parametersTypes); statement.Execute(formatter.GetDictionary()); response.mutable_count_resources()->set_count(statement.ReadInteger64(0)); } diff -r a79bfa4910c9 -r 77b9684c57b4 Odbc/Plugins/OdbcIndex.cpp --- a/Odbc/Plugins/OdbcIndex.cpp Mon Feb 03 18:52:22 2025 +0100 +++ b/Odbc/Plugins/OdbcIndex.cpp Tue Feb 04 10:06:33 2025 +0100 @@ -706,14 +706,14 @@ #endif #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) - void SQLiteIndex::ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, + void OdbcIndex::ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, DatabaseManager& manager, const Orthanc::DatabasePluginMessages::Find_Request& request) { throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented); } - void SQLiteIndex::ExecuteCount(Orthanc::DatabasePluginMessages::TransactionResponse& response, + void OdbcIndex::ExecuteCount(Orthanc::DatabasePluginMessages::TransactionResponse& response, DatabaseManager& manager, const Orthanc::DatabasePluginMessages::Find_Request& request) {