Итак, в основном весь этот код выполняет поиск в базе данных пользователя с определенным именем пользователя и паролем и возвращает nullptr, если он не находит его.
Gebruiker* Gebruiker_DAO::getGebruiker(string login, string wachtwoord)
{
PreparedStatement *prep_stmt = nullptr;
ResultSet *res = nullptr;
Gebruiker* gebruiker = nullptr;
int rowcount = 0;
try {
prep_stmt = dbConn->getConnection()->prepareStatement("SELECT * FROM Gebruiker WHERE Gebruiker_login = ? AND Gebruiker_wachtwoord = ?");
prep_stmt->setString(1, login);
prep_stmt->setString(2, wachtwoord);
res = prep_stmt->executeQuery();
while (res->next()) {
gebruiker = new Gebruiker(login, res->getBoolean("Gebruiker_isAdmin"), res->getString("Bedrijf"),res->getBoolean("Gebruiker_isActief"),res->getInt("Werknemer_ID"));
}
}
catch(SQLException& e) {
console.log(e.what(), console.Error);
return nullptr;
}
return gebruiker;
}
Проблема в том, что setString создает «std :: bad_alloc в ячейке памяти ...»
Ранее я заметил, что попытка поместить строку в SQLString также приводит к ошибке. До сих пор я использовал обходной путь, помещая вещи в SQLStrings.
SQLString schema = "groep003B";
dbConn->getInstance()->setSchema(schema);
dbConn->getInstance()->connect();
По какой-то странной причине это работает ...
Что-то я делаю не так? Я видел примеры, когда люди используют строки, но по какой-то причине это не работает для меня ... Каждый раз, когда я пытаюсь поместить переменную std :: string в SQLString, это вызывает проблему с памятью.