summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorDominick Allen <djallen@librehumanitas.org>2025-04-03 19:23:57 -0500
committerDominick Allen <djallen@librehumanitas.org>2025-04-03 19:23:57 -0500
commit1f6ec08ea811c71c5b918a4bc197d319cb66abff (patch)
tree8c8486c947385d4b0b9c9bac17826e4ebf8a91b3 /source
parent4a28858da8ee1919134df0142b69781ac9ca4647 (diff)
Decomplicate SqliteDb::exec interface.
Diffstat (limited to 'source')
-rw-r--r--source/fud_sqlite.cpp29
1 files changed, 20 insertions, 9 deletions
diff --git a/source/fud_sqlite.cpp b/source/fud_sqlite.cpp
index c607b37..f7193bf 100644
--- a/source/fud_sqlite.cpp
+++ b/source/fud_sqlite.cpp
@@ -138,29 +138,40 @@ int SqliteDb::open()
return sqlite3_open_v2(m_name.c_str(), &m_dbHandle, static_cast<int>(m_mode) | m_extraFlags, nullptr);
}
+FudStatus SqliteDb::exec(const String& statement, int (*callback)(void*, int, char**, char**), void* context)
+{
+ if (!valid()) {
+ return FudStatus::ObjectInvalid;
+ }
+
+ if (!statement.utf8Valid()) {
+ return FudStatus::Utf8Invalid;
+ }
+
+ m_errorCode = sqlite3_exec(m_dbHandle, statement.c_str(), callback, context, nullptr);
+
+ return m_errorCode == SQLITE_OK ? FudStatus::Success : FudStatus::Failure;
+}
+
FudStatus SqliteDb::exec(
const String& statement,
int (*callback)(void*, int, char**, char**),
void* context,
- // NOLINTNEXTLINE(performance-copy-param-value)
- Option<SqliteErrorMsg&>& errorMessage)
+ SqliteErrorMsg& errorMessage)
{
if (!valid()) {
return FudStatus::ObjectInvalid;
}
+ char* errorMsgPtr = nullptr;
+
if (!statement.utf8Valid()) {
return FudStatus::Utf8Invalid;
}
- char* errorMsgPtr = nullptr;
- char** errorMsgPtrAddress = errorMessage.isNone() ? nullptr : &errorMsgPtr;
-
- m_errorCode = sqlite3_exec(m_dbHandle, statement.c_str(), callback, context, errorMsgPtrAddress);
+ m_errorCode = sqlite3_exec(m_dbHandle, statement.c_str(), callback, context, &errorMsgPtr);
- if (errorMessage.hasValue()) {
- errorMessage.value().setMessage(errorMsgPtr);
- }
+ errorMessage.setMessage(errorMsgPtr);
return m_errorCode == SQLITE_OK ? FudStatus::Success : FudStatus::Failure;
}