首页 新闻 会员 周边

SQLite如何用SQL语句查询受影响行数?

0
悬赏园豆:10 [已解决问题] 解决于 2023-07-10 13:03

我是在单元练习吧,正好在研究Android数据库这块儿。
我看Android中的 SQLiteDatabase的 delete方法和 update方法返回的就是受影响行数,想研究一下她编程是如何得到的。
应该是通过查询临时表什么的吧?
(本来想Ctrl+点击一路看下去,一窥端倪,可是看到SQLiteStatement的getSession()方法就点不下去了!)

钢的锅的主页 钢的锅 | 初学一级 | 园豆:10
提问于:2023-07-10 08:46
< >
分享
最佳答案
0

QLiteDatabase 的 delete 和 update 方法都是调用了一个私有的方法 executeSql 来执行 SQL 语句。这个方法会返回一个 SQLiteStatement 对象,它是一个预编译的 SQL 语句,可以提高执行效率。

SQLiteStatement 对象有一个方法 executeUpdateDelete ,它可以执行更新或删除操作,并返回受影响的行数。这个方法是通过调用 SQLite 的 C API sqlite3_changes 来实现的,它可以返回最近一次执行的 SQL 语句所影响的行数。最近一次执行的 SQL 语句所影响的行数是由 SQLite 的 C API sqlite3_changes 来提供的。这个函数可以返回最近一次调用 sqlite3_exec() 或 sqlite3_step() 所执行的 INSERT, UPDATE 或 DELETE 语句所影响的行数。

sqlite3_changes 函数是在 SQLite 的核心代码中实现的,它会记录每次执行 SQL 语句时所影响的行数,并在调用时返回

返回最后一次执行 SQL 语句所影响的行数的过程中,并没有用到临时表。SQLite 的 C API sqlite3_changes 只是记录了每次执行 SQL 语句时所影响的行数,并不需要创建或使用任何临时表,这个过程只涉及到一个简单的计数器变量,而不需要存储任何数据

收获园豆:10
长别 | 菜鸟二级 |园豆:427 | 2023-07-10 09:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册