База данных сообщает, что она успешно открывается. Когда я запускаю его, в мой стол ничего не вставляется. Я пытался обратить пристальное внимание на одинарные кавычки, так как у многих других постов были проблемы с этим, но я все еще не вижу никаких вставок.
std::string id_check = "IF NOT EXISTS (SELECT 1 FROM known_wheels WHERE diameter = '"+ std::to_string(diameter) +"' AND height = '"+ std::to_string(height) +"');";
std::string id_insert = "INSERT INTO known_wheels VALUES ('"+ std::to_string(diameter) +"', '"+ std::to_string(height) +"');";
if(sqlite3_exec(db, id_check.c_str(), NULL, 0, &messageError) != SQLITE_ROW)
{
sqlite3_exec(db, id_insert.c_str(), NULL, NULL, &messageError);
}
else
{
ROS_INFO("Wheels exists");
}
Где я открываю БД (я признаю, что fprintf древний, это было из учебника, с которым я учился).
int wheels_compare::opendb(int argc, char** argv)
{
sqlite3* db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("wheels.db", &db);
if(rc)
{
fprintf(stderr, "can't open database: %s\n", sqlite3_errmsg(db));
return(0);
}
else
{
fprintf(stderr, "Opened database successfully\n");
}
}