问题标签 [sqldelight]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
260 浏览

android - 测试数据库存储库时出错 - SQLBrite、SQLDelight

测试我的数据库时,出现以下错误:

  • SQLiteDiskIOException:磁盘 I/O 错误(HTC Desire 620)
  • SQLiteReadOnlyDatabaseException:尝试写入只读数据库(Moto g2)

显然取决于我测试它的设备。运行应用程序时不会发生错误。不过,如果我无法测试应用程序,我的代码可能有问题。

该应用程序使用了两个库,它们应该可以很好地结合使用 SQLDelight 和 SQLBrite,这可能会使这个问题有些具体。

为了更好地理解正在发生的事情,我将对我的数据包中的文件进行简短描述。

文件LocationRun是 SQLDelight 生成的行模型。LocationManagerRunManager启用生成 sqlStatements 以从相应的表中插入或删除数据。下面看起来相似RunManagerLocationMangager

MyDBHelper 以标准方式扩展了 SQLiteOpenHelper。

数据存储库聚合了各种插入和查询操作。

现在到问题的主要部分。现在,我编写了以下测试用例并遇到了顶部列出的错误。有趣的是,当我单独运行测试时,我没有收到任何错误,所有测试都通过了。

我认为这与从不同线程访问数据库有关,但我不知道如何解决这个问题。

0 投票
1 回答
1246 浏览

sqlite - 获取 sqldelight 中插入行的行 ID

我正在尝试使用 sqldelight 插入一个项目,但在插入后也返回该项目的 ID。在 sqldelight 中似乎没有办法做到这一点。

我可以在插入之后调用类似的东西SELECT last_insert_rowid();,但这是前进的最佳方式吗?

0 投票
6 回答
1835 浏览

android - 无法解析 com.squareup.sqldelight:runtime:1.1.3

我尝试将 sqldelight 集成到我的 Android/iOS 多平台库项目中,但是在同步 gradle 时出现了几个未解决的依赖错误。

错误:无法解析 ':SharedCode@debug/compileClasspath' 的依赖关系:无法解析 com.squareup.sqldelight:runtime:1.1.3。

错误:无法解析 ':SharedCode@debug/compileClasspath' 的依赖关系:无法解析 com.squareup.sqldelight:runtime-jvm:1.1.3。

错误:无法解析 ':SharedCode@release/compileClasspath' 的依赖关系:无法解析 com.squareup.sqldelight:runtime:1.1.3。错误:无法解析“:SharedCode@release/compileClasspath”的依赖关系:无法解析com.squareup.sqldelight:runtime-jvm:1.1.3。**

  • Gradle 版本 5.1.1

  • Gradle 插件 3.4.0

  • sqldelight 1.1.3

enableFeaturePreview('GRADLE_METADATA')存在于我的 settings.gradle 中

我的项目 gradle 文件如下所示:

我的 SharedCode lib gradle 文件:

0 投票
1 回答
742 浏览

sqldelight - SqlDelight/SQLite 没有正确执行连接?

我已将 SqlDelight 添加到我的多平台项目中,并创建了一些基本表和查询。

当我尝试使用更复杂JOINS的查询时,例如查询仍然执行并且生成的接口包含所有正确的字段,但实际对象不包含生成的数据。

GithubRepository.sq:

Foobar.sq:

现在,我验证这是否适用于几个测试,如下所示:

所有单个查询都成功,我可以按预期写入和读取所有表。

碰巧的是,当使用JOIN连接属性访问查询时,它保持为空。

在更复杂的设置中,我还在 Android 模拟器上对此进行了测试,我可以从所有单独的表中读取,但不能从连接的字段中读取。

谁能发现我错过了什么?

0 投票
1 回答
599 浏览

android - Android Room 和 Sqldelight 的根本区别是什么?

忽略多平台优势,使用空间比 sqldelight 有什么优势吗?

0 投票
3 回答
407 浏览

android - Android上的sqlite中的“WHERE IN”子句是否有任何限制?

当我通过 id 查询表时,有时会出现这样的错误:

似乎限制是数组中的 1000 个项目,文档中的任何地方都没有说明。

表本身

更新:

如果我需要按 id 查询 1000 多个项目,有什么替代解决方案?目前,关系是每个都chat_ad与 many 相关chats,所以我只是在chat表中存储一个 id,然后查询用户需要的任何项目。

0 投票
3 回答
978 浏览

kotlin - 是否可以使用 sqldelight 从本地资源加载预填充的数据库

我有一个相对较大的数据库,可能需要 1 到 2 分钟来初始化,是否可以在使用 sqldelight(kotlin 多平台)而不是在应用程序启动时初始化数据库时加载预填充的数据库?

0 投票
1 回答
391 浏览

android - SQLDelight 插件错误

IDE(Android Studio)不显示错误(例如重复表),单击+命令时无法转到引用方法;这有点奇怪,因为起初插件就像一个魅力一样工作了两周,突然停止工作。

Android Studio SQLDelight 插件:v1.2.0

项目 Gradle

App Gradle 应用插件:'com.squareup.sqldelight'

distributionUrl= https://services.gradle.org/distributions/gradle-5.1.1-all.zip

0 投票
2 回答
137 浏览

java - 在 Android 上使用 SQLDelight JVM 驱动程序

是否可以在纯 Java/Kotlin 模块上使用 SQLDelight JVM 驱动程序,该模块稍后将在 Android 模块上使用?

只是想知道,因为我喜欢将我的应用程序的持久层放在其 Domain 模块上的想法,它恰好是一个纯 Kotlin 模块,不依赖于 Android 框架。

谢谢

0 投票
1 回答
980 浏览

gradle - 如何在具有 android、iOS 和不受支持的目标(如 mingwX64)的 kotlin 多平台项目中设置 sqldelight?

过去,我们正在为移动设备开发一个 kotlin 多平台项目,该项目使用 sqldelight 进行数据库访问。

现在我们想添加一些本地桌面目标,例如 mingwX64 和 linuxX64,但目前 sqldelight 不适用于这些目标,因此我们想使用其他库来处理桌面上的数据库访问。但是如何将 sqldelight 配置设置为仅适用于 android 和 iOS 目标?

当前的 build.gradle.kts 如下所示:

因为:plugins { id("com.squareup.sqldelight")sqldelight 运行时自动添加到 linux 和 windows 的依赖项中。

感谢你并致以真诚的问候