【发布时间】:2014-02-21 06:37:45
【问题描述】:
让我从我用来从表中删除记录的代码开始:
dData("Player_Data", bErrors);
调用函数,传递表名和一个布尔值来判断是否有错误。功能:
void Database::dData(string table, bool* bErrors)
{
sqlStr2 = "Delete From " + table;
sqlite3_exec(dBase,"BEGIN TRANSACTION",NULL,NULL,&error);
if (sqlite3_prepare_v2(dBase, sqlStr2.c_str(), sqlStr2.size(), &statement2, 0) == SQLITE_OK)
{
sqlite3_step(statement2);
*bErrors = false;
finalize(statement2, bErrors);
}
else
{
*bErrors = true;
createBInfo();
d.createBReport("SQL Code 3",sqlite3_errmsg(dBase),bLocale + to_string(__LINE__),bTDate,"./SC_Log.txt");
}
sqlite3_exec(dBase,"END TRANSACTION",NULL,NULL,&error);
}
我最初将删除查询作为“删除自”+ 表。这未能删除记录,因此我根据 SO 上类似问题的建议答案将其更改为 Delete * From。
无论我尝试什么,我都无法删除 Player_Data 表中的单个记录。 Player_Data 的删除查询也没有产生错误 顶部标签中的代码导致记录语法错误;回到正确的语法并没有改变这种情况。
SQLite 是否会阻止您从 c/c++ 接口删除表中的最后一条记录?
【问题讨论】:
标签: c++ sqlite delete-row