问题标签 [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.
sqldelight - SQLDelight 批量插入列表
我在使用 SQLDelight 插入许多行时遇到问题。我不确定查询是死锁还是只需要几分钟。我在两个不同的表中插入大约 10k 行。
两者都有一个.sq
文件,如:
我的插入:
kotlin-multiplatform - 我应该将我的包名用于 KMM SqlDelight 配置吗?
我正在遵循本指南,在此步骤的第一部分中,我必须执行以下操作:
问题是,我应该使用.handson.
还是.myPackageName.
为什么?
kotlin-multiplatform - 使用字符串作为 id
我正在使用 SQLDelight 作为缓存制作 KMM 应用程序,最近我将数据库实体更改为使用 Text(String) 作为 id 字段而不是 Int,现在插入时出现错误,我可能只是缺少一些 sqlDelight 知识
这是我的桌子:
这是我的插入方法:
这是我的错误:
我认为这很可能是我在 id 字段上设置的主键或类似的东西,但文档有点短。
android - 为什么 long packageName 会在作为量词导入之前导致换行?
在我的 Android 多模块项目中,我有: 模块 A:
模块 B:
在构建期间,当编译器SomeExampleDb
为模块 B 生成接口时,它会导致这样的导入:
(后面有换行符as
)导致这样的错误:
当 packageName 较短时,一切正常。在构建过程中是否以任何方式考虑了最大行长度?
SQLDelight 版本
1.5.2
操作系统
macOS 大苏尔 11.2.3
摇篮版本
7.2
Kotlin 版本
1.5.30
AGP版本
7.0.3
android - 未解决的参考:添加依赖项后 iosMain 目录中的 squareup
我正在尝试在适用于 android 和 iOS 的 Kotlin Multiplatform 项目中使用 SQLDelight。我已按照此处找到的文档进行操作。该项目成功构建,但我无法访问 com.squareup.* shared/iosMain 文件夹中的任何位置。下面是我的代码文件。
项目/build.gradle.kts:
项目/共享/build.gradle.kts:
项目/shared/src/commonMain/kotlin/com/example/sam/data/db/DatabaseDriverFactory.kt
项目/shared/src/androidMain/kotlin/com/example/sam/data/db/DatabaseDriverFactory.kt
我遇到问题的文件 - Project/shared/iosMain/kotlin/com/example/sam/data/db/DatabaseDriverFactory.kt
它找不到 SqlDriver、NativeSqliteDriver 甚至 com.squareup.*。
我已经搜索了网络,但没有找到任何帮助。
unit-testing - 如何为 SQLDelight 数据库编写单元测试?
我正在尝试测试 SQLDelight 中的插入。这是我的测试
这会导致断言失败:
我知道查询是正确的,因为我在设置函数中插入了物理钱包并且它运行良好。这是设置的摘录:
我应该如何为此编写测试?
这是现阶段我的 github 存储库的链接:https ://github.com/hardiksachan/Ledger/tree/9e96fd1c21fb1303987082465b81f467e8b699ed
kotlin - 使用流时 SQLDelight 转换查询返回类型
我想在我的应用程序中使用 SQLDelight 作为缓存层和协程扩展,以从我的 SQL 查询中返回一个流,并在本地数据库中的条目发生更改时得到通知。
但是因为 SQLDelight 为存储的实体生成它自己的类并在流中发出它们,所以我无法将存储的类转换为在我的应用程序的其余部分使用的类。
您可以在下面找到我的FriendEntity
SQL 类型和查询函数的摘录,SQLDelight 使用它来生成FriendEntity
数据类和 kotlin 函数(问题底部的生成输出)
下面我想创建一个缓存服务,它也发出一个flow
但类型Friend
而不是FriendEntity
所以我必须以某种方式将FriendEntity
类转换为我的Friend
类,同时仍然返回一个流。
如果不先收集流量,这是否可能?
由 SQLDelight 生成:
android - SQLDelight 安卓/ios 。不区分大小写的选择
我在我的 kotlin 多平台应用程序中使用 SQLDelight。它工作正常。但我发现不区分大小写的选择请求存在问题。它不适用于 iOS。
我使用本教程将 SQLDelight 集成到我的应用程序https://kotlinlang.org/docs/kmm-configure-sqldelight-for-data-storage.html中。
我有这样的查询
在 SQLDelight 文件中,它被描述为
我需要对所有 char 案例进行此选择工作。它在 Android 上运行良好。但它不适用于iOS。选择区分大小写。
我尝试了网络上的技巧
它在androidn上仍然可以正常工作,但在iOS上却不行。
笔记。我用非拉丁文本测试 - 用西里尔字母
我怎样才能让它在iOS上工作?也许它与编码有关?
更新 1。我发现建议使用特殊的 pragme 让它工作。
但这不影响。它也破坏了 androd 选择(不知道为什么,似乎内部 sqlite 使用了一些不同的 LIKE 函数)
更新 2。我还尝试将 COLLATE NOCASE 添加到查询的末尾。它在iOS上也不起作用
更新 3。最后,我发现在 iOS 上的 select 排序也不起作用!但也许这仅适用于非拉丁文本。我的数据是 cirylic 字母(乌克兰语)。