3

我收到数据库损坏的 SQLITE_CORRUPT 错误。

wrong # of entries in index sqlite_autoindex_Settings_1

在我的代码中,我有一个 try/finally 子句,在该子句中我总是尝试使用 sqlite3_finalize 我的语句。

显然,在尝试完成语句的损坏数据库上再次引发 SQLITE_CORRUPT。

问题:如果报告数据库已损坏,我应该完成我的陈述吗?

4

2 回答 2

1

在 sqlite3_finalize 之前或每个 sqlite3_step 之后使用 sqlite3_reset。

sqlite3_reset(S) 接口将准备好的语句 S 重置回其程序的开头。

于 2013-02-27T07:28:02.957 回答
0

在每个 sqlite3_step 之后检查您是否有 sqlite3_reset,因为这是导致数据库损坏的一种情况。在使用 sqlite3_prepare 准备语句并使用 sqlite3_step 执行它之后,您需要始终使用 sqlite3_reset 重置它。

sqlite3_reset(S) 接口将准备好的语句 S 重置回其程序的开头。

在 sqlite3_finalize 之前或每个 sqlite3_step 之后使用 sqlite3_reset。

希望这能解决你的问题......!!!

于 2013-02-19T10:18:34.897 回答