sqlite执行update语句后不保存结果
时间: 2023-12-08 21:05:58 浏览: 201
如果你的update语句执行后结果没有保存下来,可能是因为你没有提交事务。你需要在执行完update语句后,使用commit命令来提交更改。如果你还遇到问题,请提供更多详细信息,我会尽力帮助你解决。
哈哈,我好像记不清楚您在前面说了什么,讲个笑话吧:为什么熊猫喜欢坐着吃竹子?因为站着吃饭容易吃饱。
相关问题
sqlite中执行update后判断是否成功
在SQLite中,可以使用sqlite3_changes()函数来判断UPDATE语句是否执行成功。该函数返回最近一次执行的UPDATE、INSERT、DELETE语句影响的行数。如果返回值大于0,则表示UPDATE执行成功,否则表示UPDATE执行失败。
以下是一个使用sqlite3_changes()函数判断UPDATE语句是否执行成功的示例:
```c
sqlite3 *db;
char *errMsg = NULL;
int rc;
rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
rc = sqlite3_exec(db, "UPDATE my_table SET my_column = 'new_value' WHERE id = 1", NULL, 0, &errMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
sqlite3_close(db);
return 1;
}
if (sqlite3_changes(db) > 0) {
printf("UPDATE executed successfully\n");
} else {
printf("UPDATE failed\n");
}
sqlite3_close(db);
```
在上面的代码中,我们首先打开一个名为"test.db"的数据库。然后执行一条UPDATE语句来更新名为"my_table"的表中id为1的行的"my_column"列的值为"new_value"。接着使用sqlite3_changes()函数来判断UPDATE语句是否执行成功。如果UPDATE执行成功,就输出"UPDATE executed successfully",否则输出"UPDATE failed"。最后关闭数据库连接。
sqlite C++ 获取update 执行结果
在SQLite C语言接口中,可以使用sqlite3_changes()函数获取上一次执行UPDATE语句后受影响的行数。该函数返回一个整数值,表示受影响的行数。例如:
```
sqlite3_exec(db, "UPDATE person SET age=30 WHERE name='John'", NULL, NULL, &errmsg);
int rows = sqlite3_changes(db);
printf("受影响的行数:%d\n", rows);
```
如果UPDATE语句执行成功,rows变量将会保存受影响的行数。如果UPDATE语句没有影响任何行,rows变量将会为0。如果UPDATE语句执行失败,将会返回一个负数,表示错误码。需要注意的是,sqlite3_changes()函数只能获取上一次执行UPDATE语句的结果,如果需要获取多次执行UPDATE语句的结果,需要在每次执行UPDATE语句后调用一次该函数。
阅读全文