diff options
Diffstat (limited to 'lib/database.cpp')
| -rw-r--r-- | lib/database.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
| diff --git a/lib/database.cpp b/lib/database.cpp index 563ec31..c7b37ec 100644 --- a/lib/database.cpp +++ b/lib/database.cpp | |||
| @@ -76,6 +76,38 @@ namespace verbly { | |||
| 76 | return query<pronunciation>(*this, ppdb_, std::move(where), std::move(sortOrder), limit); | 76 | return query<pronunciation>(*this, ppdb_, std::move(where), std::move(sortOrder), limit); |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | std::set<std::string> database::selrestrs(int partId) const | ||
| 80 | { | ||
| 81 | std::string queryString = "SELECT selrestr FROM selrestrs WHERE part_id = ?"; | ||
| 82 | |||
| 83 | sqlite3_stmt* ppstmt; | ||
| 84 | if (sqlite3_prepare_v2(ppdb_, queryString.c_str(), queryString.length(), &ppstmt, NULL) != SQLITE_OK) | ||
| 85 | { | ||
| 86 | std::string errorMsg = sqlite3_errmsg(ppdb_); | ||
| 87 | sqlite3_finalize(ppstmt); | ||
| 88 | |||
| 89 | throw database_error("Error preparing query", errorMsg); | ||
| 90 | } | ||
| 91 | |||
| 92 | if (sqlite3_bind_int(ppstmt, 1, partId) != SQLITE_OK) | ||
| 93 | { | ||
| 94 | std::string errorMsg = sqlite3_errmsg(ppdb_); | ||
| 95 | sqlite3_finalize(ppstmt); | ||
| 96 | |||
| 97 | throw database_error("Error binding value to query", errorMsg); | ||
| 98 | } | ||
| 99 | |||
| 100 | std::set<std::string> result; | ||
| 101 | while (sqlite3_step(ppstmt) == SQLITE_ROW) | ||
| 102 | { | ||
| 103 | result.insert(reinterpret_cast<const char*>(sqlite3_column_blob(ppstmt, 0))); | ||
| 104 | } | ||
| 105 | |||
| 106 | sqlite3_finalize(ppstmt); | ||
| 107 | |||
| 108 | return result; | ||
| 109 | } | ||
| 110 | |||
| 79 | std::set<std::string> database::synrestrs(int partId) const | 111 | std::set<std::string> database::synrestrs(int partId) const |
| 80 | { | 112 | { |
| 81 | std::string queryString = "SELECT synrestr FROM synrestrs WHERE part_id = ?"; | 113 | std::string queryString = "SELECT synrestr FROM synrestrs WHERE part_id = ?"; |
