问题标签 [rsqlite]
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.
python - rpy2 rsqlite 加载命名空间(名称)中的错误
我已经在我的 Windows 电脑中正确安装了 rpy2,它似乎工作正常。现在我想在 rpy2 中“翻译”一个 R 例程,但是当我尝试加载特定的 R 库时,我在加载 RSQLite 库时遇到了错误。这是错误消息:
由于我成功加载了其他库,因此关于这样的库和 rpy2 似乎是一个特定问题。请问你能帮帮我吗?谢谢
r - 无法使用 opencpu 从 sqlite 数据库获取结果
我有一个相对简单的函数来从 sqlite 数据库中提取一些数据:
当我在 R(或 RStudio)中运行此代码时,这对我来说非常好:
但是,我根本没有成功,通过opencpu使用这个函数检索任何数据:
我已经仔细检查了文件是否存在,检查了它的权限,为所有人设置了读/写权限,但一点运气都没有。任何输入将不胜感激。
编辑 1: 尝试了 @Jeroen 对 apparmor 配置建议的更改,但无济于事。将以下行添加到自定义文件中确实有所帮助:
但是,它只帮助我现在得到错误:
RS-DBI 驱动程序:(语句中的错误:数据库已锁定)
通话中: sqliteExecStatement(conn, statement, ...)
这很奇怪,因为当我在 RStudio 中执行完全相同的代码(使用相同的数据库文件)时,我没有收到此错误。
编辑 2:正如 Hadley Wickham ( https://twitter.com/hadleywickham/status/526739851974955008 ) 提出的,我使用 dbGetQuery 简化了函数:
尽管如此,由于我得到完全相同的行为(在 R studio 中工作,发出 curl 命令时给出数据库锁定消息),但无济于事。
编辑 3:实际上它似乎仍然是 AppArmor 问题。我得到:
解决方法:终于找到了。最终这似乎是一个纯粹的 AppArmor 问题。我不得不改变:
至
(注意 k)以允许文件锁定。
r - 在 Mac OSX 上创建的 RSQLite db 不在 Windows 上插入数据
我真的被困在这里了。我在 Mac OSX 上创建了一个 SQLite 数据库,现在正尝试在 Windows 上将数据插入其中。我正在使用 RSQLite 库在两个平台上的 R 中进行操作。
我正在尝试从数据框中插入数据x
:
我尝试以下步骤并收到以下错误消息:
更新:vaettchen 下面的建议使用带有 append=TRUE 的 dbWriteTable 有效,谢谢。但是,dbSendQuery 仍然存在问题,在尝试删除 id=74 的所有条目时,请参阅下面的错误:
感谢任何帮助,它可能只是我看不到的愚蠢的东西。非常感谢。
r - 从批量插入中获取 last_insert_rowid()
我有一个 sqlite 数据库,我需要将空间信息与元数据一起插入到 R*tree 和随附的常规表中。每个条目都需要在数据库的生命周期内唯一定义。因此,常规表有一个 INTEGER PRIMARY KEY AUTOINCREMENT 列,我的计划是从插入该表开始,提取最后插入的 rowid 并将它们用于插入 R*tree。唉,这似乎不可能:
似乎只保留了最后插入的 rowid(可能出于性能原因)。由于要插入的记录数是几十万,逐行插入是不可行的。
所以问题是:有什么方法可以让last_insert_rowid()
我屈服于我的意志?如果不是,最好的故障安全替代方案是什么?一些可能性:
- 在插入之前记录最高的rowid和
'SELECT rowid FROM testTable WHERE rowid > prevRowid'
- 获取要插入的行数,获取 last_insert_rowid() 并使用
seq(to=lastRowid, length.out=nInserts)
虽然以上两个建议至少在直觉上应该有效,但我对 sqlite 没有足够的信心知道它们是否是故障安全的。
r - 调试 SQLite R*tree
我有一个包含 R*tree 虚拟表的 SQLite 数据库。这张桌子的行为相当奇怪,我不知道出了什么问题。我将不胜感激任何指向我可以调查的方面!
好像还好...
R*tree 表的一般外观
scanEnd 的边界
到目前为止,一切都很好...
记录在哪里?
当比较器达到任意大的数字时,其他列也会发生同样的情况。此行为仅存在于 R*tree 表中 - 常规表工作正常...
我是否偶然发现了我不知道的 R*tree 模块中的约束?R*tree 中的所有记录都来自一个大插入,我没有触及 R*tree 所依赖的基础表......
编辑: 应 CL 的要求,我尝试创建一个可重现的示例。至少在我的系统上,以下会产生具有相同行为的 R*tree:
编辑 2: 可以从以下链接下载使用第一次编辑中给出的命令创建的数据库: https ://dl.dropboxusercontent.com/u/2323585/testdb.sqlite
sql - 语句中的错误:没有这样的列,但列存在
我正在使用 RSQLite 来组合两个表。我检查了每一步,但仍然没有弄清楚出了什么问题。这是我的脚本:
performance - 提升 SQLite 数据库的简单 SELECT 性能
我正在使用一个 SQLite 数据库(1GB+),其中只有一个堆叠的金融刻度时间序列表。我正在使用 RSQLite 包连接到数据库。我的情况很简单:选择从一个日期到另一个日期的数据子集,例如 from 20140101
to 20140930
。因此查询也很简单:
数据存储在 SSD 上,但读取时间看起来仍然很慢。是否有一些方法或技巧可以提高这种简单子集查询的性能?
该数据库有 14 列并自动索引。
r - RSQLite:如何做出不相等的声明?
我想发表以下声明:
此语句适用于SQLite Manager,但不适用于RSQLite。
请你帮助我好吗?
非常感谢 :)
database - 如何查找在 SQLite 中创建的数据库
我正在使用此代码将数据从 DB 加载ontime
到 R 中的数据框中。
但是,似乎 R 找不到ontime
我从 SQLite shell 创建的数据库。
我试图ontime
在磁盘上搜索,但没有找到。我还使用select * from ontime
命令仔细检查了该数据库是否存在。那么,这个数据库存储在磁盘上的什么位置,我该如何找到它呢?