正在尝试截断表,但输出为分段故障(核心转储)。以下是我要截断的代码。表名: DEPO由于函数del_depo_data是从不同的地方调用的,而数据库是从调用它的地方打开的,所以没有编写打开数据库的代码。
void del_depo_data()
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
sqlite3_stmt *res;
const char* data = "Callback function called";
/* Create merged SQL statement */
sql = "DELETE FROM TABLE DEPO";
rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
sqlite3_close(db);
return;
}发布于 2017-03-19 05:02:32
解决了。
SQL
发布于 2017-03-19 04:44:06
由于函数del_depo_data是从不同的地方调用的,而数据库是从调用它的地方打开的,所以没有编写打开DB的代码。
如果您在代码中的其他位置打开了数据库,则需要以某种方式将数据库句柄( sqlite3 *)传递给此函数。现在,您声明了一个局部变量sqlite3 *db,但从未将其初始化为任何值。这会导致SQLite崩溃。
此外,DELETE FROM TABLE tablename不是有效的SQLite语法。正确的语法是简单的DELETE FROM tablename。
https://stackoverflow.com/questions/42879592
复制相似问题