1
我正在使用C程序与sqlite3。有时插入作品。但有时候,它不能正常工作。 assert(retval == SQLITE3_OK) 给出错误。在调试时,我发现)sqlite3_step的RETVAL值(是错误代码= 5 是指数据库文件正忙 即使sqlite3_close()返回错误代码关闭5sqlite3关闭语句不起作用
如何关闭数据库连接的任何想法,甚至什么时候很忙?
我正在使用C程序与sqlite3。有时插入作品。但有时候,它不能正常工作。 assert(retval == SQLITE3_OK) 给出错误。在调试时,我发现)sqlite3_step的RETVAL值(是错误代码= 5 是指数据库文件正忙 即使sqlite3_close()返回错误代码关闭5sqlite3关闭语句不起作用
如何关闭数据库连接的任何想法,甚至什么时候很忙?
您可能正处于交易中。请尝试检查http://www.sqlite.org/c3ref/get_autocommit.html以了解有关sqlite3_get_autocommit()
如何工作的说明。如果它不在自动提交中,它应该返回一个零,这意味着有一个打开的事务。
或者,如果你怀疑你的数据库可能仍做某件事情,你可以用sqlite3_busy_timeout()
设置一个计时器。 http://www.sqlite.org/c3ref/busy_timeout.html
您是否使用事务控制?你有没有尝试发送“提交”? – amphetamachine 2010-01-27 05:29:36