社区
其他数据库
帖子详情
SQLite 生成.db-journal文件 插入的记录无法保存
enll_2002
2008-04-16 11:21:33
有没有好心人,刚刚开始用SQLite,vc环境下,单线程的时候插入是正常的,多线程插入的时候就生成.db-journal文件,还是可以查看的只是重启程序后就没有了,原始数据库的记录也没有变化,看到有人说是所在文件夹没有删除的权限,可是奇怪单线程怎么又可以写呢? 另外从来没有发过帖,不知道分是怎么操作,请不要见怪。
...全文
3036
17
打赏
收藏
SQLite 生成.db-journal文件 插入的记录无法保存
有没有好心人,刚刚开始用SQLite,vc环境下,单线程的时候插入是正常的,多线程插入的时候就生成.db-journal文件,还是可以查看的只是重启程序后就没有了,原始数据库的记录也没有变化,看到有人说是所在文件夹没有删除的权限,可是奇怪单线程怎么又可以写呢? 另外从来没有发过帖,不知道分是怎么操作,请不要见怪。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jackey_option
2012-01-31
打赏
举报
回复
我之前有遇到过
begin transaction;
commit transaction;
没有配对,导致-journal文件生成
执行了 begin transaction;
没有执行 commit transaction;
蜡台
2011-08-24
打赏
举报
回复
正在找这方面的原因??
xinyetonghua
2011-08-10
打赏
举报
回复
版主问题解决了没,我的应用程序也出现这个问题,怎么解决的啊,能说说吗?
neu20053476
2010-12-14
打赏
举报
回复
#4楼 你产生.db-journal 是因为是因为你的事务回滚了.(原因可能很多 )
这句话非常有用,按照这个方向查下去就容易找到问题的原因了。
nikolas
2010-11-27
打赏
举报
回复
好的 正需要这个解决方法
wanglei5695312
2010-05-27
打赏
举报
回复
我也产生这个文件了
enll_2002
2008-08-27
打赏
举报
回复
谢谢 好像找到原因了 好久没来发现还没结贴。。。
zhaoli_824
2008-08-19
打赏
举报
回复
windows上的多线程我没有试过, 但是-journal文件在任何一次的数据库修改操作中都会产生,只是你看不到而已. 我在vxworks上的多线程访问是正常的(自己移植的),我使用的是3.59的版本. 不过sqlite更新的太快了,新版的我还没有试过.
truelove7283159
2008-07-30
打赏
举报
回复
多线程时候,数据库的句柄是线程不安全的,你自己要管理的.
多线程 数据库的句柄给其他线程用 很容易crash,肯定有那个文件存在,说明文档有的.
truelove7283159
2008-07-30
打赏
举报
回复
晕,有没有好好看sqlite阿.
你一个insert都可以触动一个事务的.
除非你显式自己管理事务,否则除了select基本都有事务参与.
有事务就慢了.
所以我都把好多操作放在一个事务里了, 有事务数据库异常,表结构变动, 程序异常推出都有可能有transcation,都会留一个.db-j####的文件.
Ione
2008-07-30
打赏
举报
回复
http://topic.csdn.net/u/20080729/12/65a78b77-efe8-4bf6-bbfc-86c91a8f628a.html
Ione
2008-07-29
打赏
举报
回复
[Quote=引用 5 楼 feizhuangxuan 的回复:]
终于知道原因了,创建以后还要create table XXXX
[/Quote]
不明 , 我也遇到同样的问题
feizhuangxuan
2008-07-28
打赏
举报
回复
终于知道原因了,创建以后还要create table XXXX
truelove7283159
2008-06-26
打赏
举报
回复
Sqlite的多线程支持不是太好,所以你最好自己做保证.
同一个数据库的指针不可以在两个县城中打开.
你产生.db-journal 是因为是因为你的事务回滚了.(原因可能很多 )
一般在下一个数据查询操作时候就可以恢复.
你可以在你的数据库操作使用timeout这样预见忙 他会等timeout时间.
.db-journal文件产生的可以能性才小.
dupengcheng
2008-05-06
打赏
举报
回复
大侠您好,看了您的帖子,觉得您是个sqlite高手,至少很会的哦。小虾我刚接触sqlite,上司要我研究sqlite3,很快要做东西。我对其不了解,在网上看到了一些介绍sqlite的文章,但不太适用。请求大侠指点小虾入门,多谢。请求您的建议。比如:如何学习、应用sqlite3(快速,公司有项目等着用)。多谢。
另外:
从Sqlite主页上下载的sqlite-3_5_8.zip,加压缩后发现只有一个sqlite3.exe文件,双击后,是一个简朴的console界面,尝试在"sqlite >"提示符下输入c:\test.db,发现并没有在c:盘创建一个数据库文件。向同事请教才明白, "Sqlite >"提示符下的操作是在某个数据库文件中执行sql语句,而我的目的却是要创建一个数据库文件,数据库文件都没创建,何谈进行相关 sql操作。要创建一个db文件的话,现从windows的cmd console界面下进去,然后cd到sqlite3.exe目录,最后在提示符下敲入:sqlite3.exe c:\test.db,这样便创建成功了一个数据库。
可是还是没有成功建立数据库。请指点。
这说明可能没有正常安装、使用,请指教。汗.....谢谢。
邮箱:crazydpc@actions-semi.com 多谢!
enll_2002
2008-04-16
打赏
举报
回复
版本是3.5.7
sqlite
文件
大小问题,删除不干净,彻底清空数据库
问题描述:
sqlite
中删除了大量数据后,数据库
文件
的大小没有变。 update更新数据库,
文件
大小翻倍。 原因: 当你从
Sqlite
删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次
插入
的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。 解决:
sqlite
操作全部完成后,执行 VACUUM 命令。
go-
sqlite
入门指南:10分钟掌握纯Go
SQLite
驱动的安装与基础使用
go-
sqlite
是专为Go语言开发者设计的纯Go
SQLite
驱动,它完全嵌入Go实现的
SQLite
引擎,无需额外安装C语言库或外部依赖。这个强大的数据库驱动完美兼容Go标准库的database/sql接口,让开发者能够轻松地在Go应用中集成轻量级、高性能的
SQLite
数据库。🚀 ## 📦 为什么选择纯Go
SQLite
驱动? 传统的
SQLite
驱动如`mattn/go-
sqlite
3`
SQLite
性能优化实践
背景 项目在小型服务器上需要使用到
SQLite
,在默认配置下(以下数据均在4C16G,SSD环境测试),会出现以下瓶颈。
SQLite
的写性能大概在100-200TPS,这样的写性能对服务器(哪怕是4g内存)来说也显得不够看。 并发能力不足,经测试并发量在10QPS以上就会概率性database is locked。 当遇到database is locked的异常信息,sql...
sqlite
数据库写入速度的提升
之前做个爬虫,想把数据写入本地数据库,发现数据库的写入速度每条只有10次左右,一直没有找到好的方法提升他。在一次偶然的机会看到了关于
sqlite
的一些设置,才知道可以通过设置提升的。其实原理就是不让数据库的每次提交写入磁盘,而做一个缓存,每隔一定时间进行提交 不废话了,直接上代码 #include <QCoreApplication> #include <QTextCode...
iOS
SQLite
数据库集成与
SQLite
语句使用深度解析(31)
SQLite
采用模块化设计,核心组件包括: - **SQL解析器**:将SQL语句转换为语法树 - **代码
生成
器**:将语法树转换为虚拟数据库机(V
DB
E)指令 - **V
DB
E引擎**:执行指令操作B-Tree存储结构 - **B-Tree模块**:管理数据存储与索引 - **内存管理器**:负责内存分配与缓存 - **OS接口层**:提供
文件
系统和多线程支持
其他数据库
2,209
社区成员
9,519
社区内容
发帖
与我相关
我的任务
其他数据库
其他数据库开发 其他数据库
复制链接
扫一扫
分享
社区描述
其他数据库开发 其他数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章