首页 > 解决方案 > 有没有办法在 ROOM 上加载扩展或使用数学函数?

问题描述

Room 基于 SQLITE,在文档中可以加载扩展,即使在 SQLite 的 DB 浏览器上也有一个数学扩展,并且在加载了我需要的查询后工作正常,我尝试像这样使用 Kotlin 在 Android 上复制它

database.query(SimpleSQLiteQuery("SELECT load_extension('$Path2Ext')")) 但这给了我一个例外“没有这样的功能 load_extension”

我需要使用数学函数 acos、cos、弧度...

有办法做到这一点吗?我将不胜感激任何帮助

标签: androidandroid-room

解决方案


SQLite 是 Android 的一部分,自 Android 创建以来就使用它进行编译。向 SQLite 添加扩展非常强大,可能会导致数据库的误用。这就是为什么 SQLite 默认关闭,Android 完全禁用它的原因。

如果您搜索Android 源代码,您将在SQLITE_OMIT_LOAD_EXTENSION默认情况下定义并禁用扩展的代码。


推荐阅读