问题标签 [grdb]
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.
swift - GRDB 中没有成员“保存”
我正在使用 GRDB 和自定义结构。获取行非常有效,但是在尝试更新或删除行时会出现问题。当我尝试添加行来保存记录时,我收到一个编译器错误,即“变量名”没有成员“保存”。如果我尝试删除,也会出现同样的错误。
该结构的定义如下:
使用它的类是这样的:
查看所有文档,看来我所要做的就是在实例上调用 .save 以达到 .save 或 .delete 的通用实现,但是它没有识别附加功能。有任何想法吗?
swift - 使用 Swift Package Manager、Cocoa Pods 或其他工具将最小的 GRDB 添加到 Xcode 项目
来自GRDB 在 github上的演示 iOS 应用程序在我的 iMac 的手机模拟器上运行良好,但目前尚不清楚如何在我自己的 iOS 应用程序中构建 GRDB(此问题的第 1 部分),并使用最少的组件集(部分这个问题的2个)。1
GRDB安装说明 建议提供一个选项:“Swift 包管理器”。由于我是这个编程环境的新手,这听起来像是“正确的方法”,但在尝试之后,我仍然在猜测如何成功构建我的项目。
到目前为止完成的步骤:
- 创建了一个新项目
Applications > Xcode (9.4 beta) > Create a new Xcode project > Single View App > "FirstDb"
- 放入
import GRDB
视图控制器(显然还不能编译) - 应用程序 > 实用程序 > 终端
cd /Users/owner/documents/xcodeprojects/firstdb
mkdir GRDB
cd GRDB
swift package init --type library
- 编辑
Package.swift
,.package(url: "https://github.com/groue/GRDB.swift.git", from: "2.10.0")
在适当的位置添加 - 应用程序 > 实用程序 > 终端
swift package resolve
(导致“获取”、“克隆”、“解决”)
状态
之后Product > Build
,import GRDB
线路依旧说no such module
。
所以问题的第 1 部分仍未解决。我还不能解决问题的第 2 部分。很抱歉,如果这些中的任何一个或两个对于富有的 Xcode 开发人员来说都是显而易见的,但是在研究了这个问题之后,我没有找到具体的指导。
使用 SPM 不是必需的,因此如果集成 GRDB 的其他选项是更好的选择,我想看看如何使用其中之一进行集成。
脚注
- 我想了解仅添加使用该
Record
对象所需的部分 GRDB 以及能够为 iOS 项目执行 SQL 语句所需的步骤。假设在使用 GRDB 基础的项目中不需要大部分完整的包(测试、监视等),从而产生更紧凑的 iOS 应用程序。
ios - ViewController 中的 SQLite 错误 14
错误是打印 SQLite 错误 14
什么是 SQLite 错误 14?
首先使用GRDB并首先调用SqlLite
为什么要引发错误?
IOS 11.0 Swift 4.0 Grdb 2.10.0
构建到 Iphone8 模拟器
swift - 如何在grdb中获取完整的QueryInterfaceRequest sql字符串,包括字符串中的所有参数(GRDB.StatementArguments)
我需要获取查询接口的完整 sql 查询,以便将它们保存在用户默认值中,但我找不到此功能
更新:为了实现完整的查询字符串:
包括被 sqlite 修剪以进行注入的参数,您不能手动用问号替换这些参数。
您无法实现这些论点的真正价值,因为它们是私有的
swift - 如何从 GRDB 中的只读数据库连接中调用新的数据库连接?
下面的函数返回一条Ledgers
记录。大多数时候,它会在可选_currentReceipt
变量中找到它,或者通过搜索数据库,不需要在那里写。我想使用只读的 GRDB 数据库连接。只读数据库连接可以在不同线程上并行运行。
在极少数情况下,前两个步骤失败,我可以创建一个默认分类帐。调用try FoodyDataStack.thisDataStack.dbPool.write { writeDB in ...
会抛出致命错误,数据库连接不可重入。我正在寻找一种方法来保存该默认分类帐,而不必将整个函数包装在读写连接中。
我可以在 GRDB .read 块中的单独队列上调用 NSOperation 吗?
编辑:我把这个问题留在这里,但我想我可能会进行过早的优化。我将尝试使用 dbQueue 而不是 dbPool,看看性能如何。如果速度需要,我会回到 dbPool。
grdb - How do I determine whether a database connection is read/write or read-only in GRDB?
In GRDB I can create read-only database connections with
I can create read-write database connections with
In each case I can call a function from within the closure using db as an argument. In GRDB read-only database connections can run in parallel in different threads. Write database connections block the database.
I have a pattern I would like to use in some functions:
- Select a record filtered on some attributes.
- If a record is found, return it.
- If no record is found, create a default placeholder record with those attributes.
- If the db is read-write, save the default placeholder and return it.
- If the db is read-only, just return the placeholder
Is there a way to determine if the db is read-only? Looking through the reference documentation at http://groue.github.io/GRDB.swift/docs/4.1/Classes/Database.html, I don't see a simple way to determine this aside from error handling.
I could just attempt to save in the function and catch the error if the db is read-only.
swift - 使用 GRDBCombine 获取唯一项并使用 SwiftUI 将它们显示在列表中
我在https://github.com/EricG-Personal/grdb_test.git有一个示例测试项目
在 ContentView.swift 中,我目前有一个显示数据库中所有项目的列表。
在此之下,我想要另一个列表,显示测试表中所有唯一的“名称”。
我迷失在 GRBD、Combine 和 SwiftUI 之间的详细信息中,并且不确定在使用 GRBDCombine 时为第二个列表提供数据库所需数据的代码是什么样的。
swift - Swift 中的 GRDB - .fetchAll 只返回一列
我的原始代码
我的问题
在这段代码中,如果我执行类似的查询,select fld_str_firstname from myOwnUserView where fld_int_id = 2;
我会在 returnStrs 数组中得到一个元素,这与预期的一样。然后选择这两个字段,就像在 nameQuery 中一样,我仍然只能在 returnStrs 数组中得到一个字符串。
为什么会这样,我如何适应它以获取响应中的所有选定列?
sqlite - SQLite CREATE TRIGGER ... SQLite 错误 1 与语句:不完整的输入
试图在 Xcode / Swift5 / GRDB 中创建触发器。下面代码块中的触发器静默失败,所以我移动它并看到标题中的错误[我已从标题中删除了 SQL 语句的文本]。奇怪的是,DB Browser 将运行 SQL 并创建触发器就好了。并且应用程序使用外部创建的触发器按预期响应。并且内部的 UPDATE 似乎在触发器之外工作正常。
打开了GRDB github repo 的问题...只是通过原始 SQL。在线检查几个验证器。所有人要么说没有错,要么CREATE TABLE
在下面的块中失败了……所以对任何验证者都不信任。
记得我在 ipad 上有 DraftCode,包括 phpLiteAdmin。发送 SQL 并得到相同的incomplete input
错误。回到桌面...更新 PHP,并得到phpLiteAdmin
...同样的错误。
所以...它是像https://github.com/sqlitebrowser/sqlitebrowser/issues/1470这样的 SQLite 错误?或者更可能是我的语法错误。我以前从来没有玩过触发器……所以我可能是个忽视显而易见的笨蛋。如果是这样,请帮我纠正。
还有一点有趣...在phpLiteAdmin
,使用触发器生成器,一切正常。但尝试运行生成的创建 SQL 语句、复制/删除触发器/并重新粘贴,会产生相同的错误
任何有关以 SQL 语句GRDB
或phpLiteAdmin
SQL 语句创建触发器的帮助将不胜感激。谢谢。