# HG changeset patch # User Alain Mazy # Date 1729526272 -7200 # Node ID 8296c6a0238eb8daffb5067043d6c5f638f530d2 # Parent a80775ee5eeae83a71b45f23e4c3a6871360f917 ODBC: fixes limit diff -r a80775ee5eea -r 8296c6a0238e Framework/Plugins/ISqlLookupFormatter.cpp --- a/Framework/Plugins/ISqlLookupFormatter.cpp Mon Oct 21 14:34:57 2024 +0200 +++ b/Framework/Plugins/ISqlLookupFormatter.cpp Mon Oct 21 17:57:52 2024 +0200 @@ -801,7 +801,8 @@ if (limit != 0) { - sql += " LIMIT " + boost::lexical_cast(limit); + sql += " ORDER BY " + FormatLevel(queryLevel) + ".publicId "; // we need an "order by" to use limits + sql += formatter.FormatLimits(0, limit); } } @@ -1192,7 +1193,8 @@ if (limit != 0) { - sql += " LIMIT " + boost::lexical_cast(limit); + sql += " ORDER BY publicId "; // we need an "order by" to use limits + sql += formatter.FormatLimits(0, limit); } } } diff -r a80775ee5eea -r 8296c6a0238e Framework/Plugins/IndexBackend.cpp --- a/Framework/Plugins/IndexBackend.cpp Mon Oct 21 14:34:57 2024 +0200 +++ b/Framework/Plugins/IndexBackend.cpp Mon Oct 21 17:57:52 2024 +0200 @@ -2216,7 +2216,7 @@ { case Dialect_MSSQL: { - if (since > 0) + if (count > 0 || since > 0) { sql += " OFFSET " + boost::lexical_cast(since) + " ROWS "; } diff -r a80775ee5eea -r 8296c6a0238e Odbc/Plugins/OdbcIndex.cpp --- a/Odbc/Plugins/OdbcIndex.cpp Mon Oct 21 14:34:57 2024 +0200 +++ b/Odbc/Plugins/OdbcIndex.cpp Mon Oct 21 17:57:52 2024 +0200 @@ -707,20 +707,20 @@ #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) - void OdbcIndex::ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, - DatabaseManager& manager, - const Orthanc::DatabasePluginMessages::Find_Request& request) - { - // TODO-FIND - throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented); - } + // void OdbcIndex::ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, + // DatabaseManager& manager, + // const Orthanc::DatabasePluginMessages::Find_Request& request) + // { + // // TODO-FIND + // throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented); + // } - void OdbcIndex::ExecuteCount(Orthanc::DatabasePluginMessages::TransactionResponse& response, - DatabaseManager& manager, - const Orthanc::DatabasePluginMessages::Find_Request& request) - { - // TODO-FIND - throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented); - } + // void OdbcIndex::ExecuteCount(Orthanc::DatabasePluginMessages::TransactionResponse& response, + // DatabaseManager& manager, + // const Orthanc::DatabasePluginMessages::Find_Request& request) + // { + // // TODO-FIND + // throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented); + // } #endif } diff -r a80775ee5eea -r 8296c6a0238e Odbc/Plugins/OdbcIndex.h --- a/Odbc/Plugins/OdbcIndex.h Mon Oct 21 14:34:57 2024 +0200 +++ b/Odbc/Plugins/OdbcIndex.h Mon Oct 21 17:57:52 2024 +0200 @@ -98,13 +98,13 @@ #endif #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 5) - virtual void ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, - DatabaseManager& manager, - const Orthanc::DatabasePluginMessages::Find_Request& request) ORTHANC_OVERRIDE; + // virtual void ExecuteFind(Orthanc::DatabasePluginMessages::TransactionResponse& response, + // DatabaseManager& manager, + // const Orthanc::DatabasePluginMessages::Find_Request& request) ORTHANC_OVERRIDE; - virtual void ExecuteCount(Orthanc::DatabasePluginMessages::TransactionResponse& response, - DatabaseManager& manager, - const Orthanc::DatabasePluginMessages::Find_Request& request) ORTHANC_OVERRIDE; + // virtual void ExecuteCount(Orthanc::DatabasePluginMessages::TransactionResponse& response, + // DatabaseManager& manager, + // const Orthanc::DatabasePluginMessages::Find_Request& request) ORTHANC_OVERRIDE; #endif }; } diff -r a80775ee5eea -r 8296c6a0238e TODO --- a/TODO Mon Oct 21 14:34:57 2024 +0200 +++ b/TODO Mon Oct 21 17:57:52 2024 +0200 @@ -76,4 +76,4 @@ ODBC ---- -* https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=224 \ No newline at end of file +* Implement labels \ No newline at end of file