Mercurial > hg > orthanc-databases
changeset 637:77b9684c57b4
fix PG ODBC
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 04 Feb 2025 10:06:33 +0100 |
parents | a79bfa4910c9 |
children | f4b132734936 |
files | Framework/Plugins/IndexBackend.cpp Odbc/Plugins/OdbcIndex.cpp |
diffstat | 2 files changed, 10 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- 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)); }
--- 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) {