diff --git a/src/database.cpp b/src/database.cpp index ab994ab..811d405 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -98,7 +98,7 @@ Database::FieldList Database::execute(const std::string& stmtName, } else if (params.size() == 5) { res = txn.exec_prepared(stmtName, params[0], params[1], params[2], params[3], params[4]); } else { - // Für mehr als 5 Parameter, verwende exec_params + // Für mehr als 5 Parameter, verwende exec_params mit einzelnen Parametern std::string sql = "EXECUTE " + stmtName; if (!params.empty()) { sql += "("; @@ -108,7 +108,22 @@ Database::FieldList Database::execute(const std::string& stmtName, } sql += ")"; } - res = txn.exec_params(sql, params); + + // Konvertiere vector zu einzelnen Parametern für exec_params + if (params.size() == 6) { + res = txn.exec_params(sql, params[0], params[1], params[2], params[3], params[4], params[5]); + } else if (params.size() == 7) { + res = txn.exec_params(sql, params[0], params[1], params[2], params[3], params[4], params[5], params[6]); + } else if (params.size() == 8) { + res = txn.exec_params(sql, params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7]); + } else if (params.size() == 9) { + res = txn.exec_params(sql, params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7], params[8]); + } else if (params.size() == 10) { + res = txn.exec_params(sql, params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7], params[8], params[9]); + } else { + // Für noch mehr Parameter, verwende eine einfachere Lösung + throw std::runtime_error("Zu viele Parameter für prepared statement: " + std::to_string(params.size())); + } } #endif }