Mercurial > hg > orthanc-databases
comparison Framework/Plugins/IndexBackend.cpp @ 69:19764fc60ade db-changes
compatibility with Orthanc SDDK 0.9.5
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 03 Jan 2019 10:07:27 +0100 |
parents | 714c5d2bee76 |
children | e6c13ddd26d9 |
comparison
equal
deleted
inserted
replaced
68:babc1e0eb7f2 | 69:19764fc60ade |
---|---|
27 #include "GlobalProperties.h" | 27 #include "GlobalProperties.h" |
28 | 28 |
29 #include <Core/Logging.h> | 29 #include <Core/Logging.h> |
30 #include <Core/OrthancException.h> | 30 #include <Core/OrthancException.h> |
31 #include <OrthancServer/ServerEnumerations.h> | 31 #include <OrthancServer/ServerEnumerations.h> |
32 #include <OrthancServer/Search/ISqlLookupFormatter.h> | |
32 | 33 |
33 | 34 |
34 namespace OrthancDatabases | 35 namespace OrthancDatabases |
35 { | 36 { |
36 static std::string ConvertWildcardToLike(const std::string& query) | 37 static std::string ConvertWildcardToLike(const std::string& query) |
1577 Dictionary args; | 1578 Dictionary args; |
1578 args.SetIntegerValue("id", id); | 1579 args.SetIntegerValue("id", id); |
1579 | 1580 |
1580 ReadListOfStrings(childrenPublicIds, statement, args); | 1581 ReadListOfStrings(childrenPublicIds, statement, args); |
1581 } | 1582 } |
1583 | |
1584 | |
1585 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
1586 class IndexBackend::LookupFormatter : public Orthanc::ISqlLookupFormatter | |
1587 { | |
1588 private: | |
1589 Dialect dialect_; | |
1590 | |
1591 public: | |
1592 LookupFormatter(Dialect dialect) : | |
1593 dialect_(dialect) | |
1594 { | |
1595 } | |
1596 | |
1597 virtual std::string GenerateParameter(const std::string& value) | |
1598 { | |
1599 switch (dialect_) | |
1600 { | |
1601 case Dialect_MySQL: | |
1602 break; | |
1603 | |
1604 case Dialect_PostgreSQL: | |
1605 break; | |
1606 | |
1607 case Dialect_SQLite: | |
1608 break; | |
1609 | |
1610 default: | |
1611 throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented); | |
1612 } | |
1613 } | |
1614 }; | |
1615 #endif | |
1616 | |
1617 | |
1618 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
1619 // New primitive since Orthanc 1.5.2 | |
1620 void IndexBackend::LookupResources(const std::vector<Orthanc::DatabaseConstraint>& lookup, | |
1621 OrthancPluginResourceType queryLevel, | |
1622 uint32_t limit, | |
1623 bool requestSomeInstance) | |
1624 { | |
1625 std::string sql; | |
1626 | |
1627 { | |
1628 LookupFormatter formatter(manager_.GetDialect()); | |
1629 Orthanc::ISqlLookupFormatter::Apply(sql, formatter, lookup, | |
1630 Orthanc::Plugins::Convert(queryLevel), limit); | |
1631 } | |
1632 } | |
1633 #endif | |
1582 } | 1634 } |