SQLite 生成.db-journal文件 插入的记录无法保存

enll_2002 2008-04-16 11:21:33
有没有好心人,刚刚开始用SQLite,vc环境下,单线程的时候插入是正常的,多线程插入的时候就生成.db-journal文件,还是可以查看的只是重启程序后就没有了,原始数据库的记录也没有变化,看到有人说是所在文件夹没有删除的权限,可是奇怪单线程怎么又可以写呢? 另外从来没有发过帖,不知道分是怎么操作,请不要见怪。
...全文
2908 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧