函数sqlite3_changes是否安全?

时间:2016-03-18 06:32:09

标签: c++ sqlite

我在多线程应用程序中使用sqlite3数据库。 (库已正确编译并设置为线程安全模式)。

执行类型insert into table1 select from table2的语句后,我想检查语句是否在table1中插入了一些行。

在这两种情况下,sqlite3_step()的执行都会返回SQLITE_DONE

查看sqlite3_changes()函数的描述,它看起来正是我需要的,其描述中有两个令人烦恼的问题:

  1. 它不是在语句上,而是在我在所有线程中使用的数据库连接上。

  2. 根据功能描述,它似乎不是线程安全的:

  3.   

    如果一个单独的线程在sqlite3_changes()运行时对同一个数据库连接进行更改,则返回的值是不可预测的,没有意义。

    那么,这个函数线程是否安全?有没有办法在语句的基础上获取插入行的数量,而不是基于连接?

0 个答案:

没有答案