Sqlite数据库的问题

hclchenjie 2012-10-23 05:22:51
关于Sqlite数据库,我有些问题请教各位。

1、我的程序是C++编写的MFC程序。现在使用Sqlite的方法是使用别人封装好的类来操作数据库的,也就是对基础的C/C++ Interface Spec进行封装,这些类是别人给我的,我摸这些东西也没几天,不熟悉。不知道哪位大哥大姐有健壮的封装类?可否共享给我?

2、Sqlite是文件型数据库,文件越用越大,我现在可以通过SQLiteExpertPers数据库管理工具进行check操作。使文件“整理”从而恢复大小。不知道这个操作能否用C++代码在程序里面实现这个“整理数据库”的功能?

3、使用SQLITE出现了一个问题,database disk image is malformed。数据库文件损坏了,用管理工具打不开,用程序读不出来。。我目前的处理方法是用命令台
sqlite3 power.db
.dump
.read
将损坏的power.db这个Sqlite数据库文件的数据导出到一个新的文件里面,然后就用新的文件做数据库,旧的。。没法用了。。
出现错误的原因网上众说纷纭,千奇百怪。这个问题能否通过修复来解决?是否有API可以使用?如果在程序读不出来的时候捕获异常,用API修复文件,那不就爽了。。各位大哥,是否有这样的API支持?或者有牛逼的封装类可以解决这类问题?


QQ:369264298,如果有好的封装类发我QQ邮箱,谢谢。
也期待和各位的交流促成进步。
...全文
150 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2012-10-24
  • 打赏
  • 举报
回复
一般是SELECT * FROM 表
OR
连接时

都要捕获错误
hclchenjie 2012-10-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
3、没有办法,一般用捕获错误的方法
[/Quote]

你说的捕获错误的方法,是指获取接口的返回值嘛?
wwwwb 2012-10-24
  • 打赏
  • 举报
回复
3、没有办法,一般用捕获错误的方法
修复的方法
sqlite3 old.db .dump > old.sql

sqlite3 new.db < old.sql

2、
sqlite3 ff.db "VACUUM"

1、最好用官方的
ACMAIN_CHM 2012-10-23
  • 打赏
  • 举报
回复
[Quote]2、Sqlite是文件型数据库,文件越用越大,我现在可以通过SQLiteExpertPers数据库管理工具进行check操作。使文件“整理”从而恢复大小。不知道这个操作能否用C++代码在程序里面实现这个“整理数据库”的功能?[/Quote]
你可以执行类似SELECT这种语句的命令。 VACUUM

http://www.sqlite.org/lang_vacuum.html
ACMAIN_CHM 2012-10-23
  • 打赏
  • 举报
回复
[Quote]1、我的程序是C++编写的MFC程序。现在使用Sqlite的方法是使用别人封装好的类来操作数据库的,也就是对基础的C/C++ Interface Spec进行封装,这些类是别人给我的,我摸这些东西也没几天,不熟悉。不知道哪位大哥大姐有健壮的封装类?可否共享给我?
[/Quote]你可以使用SQLITE官方提供的C/C++ Interface http://www.sqlite.org/download.html
wwwwb 2012-10-23
  • 打赏
  • 举报
回复
2
连接SQLITE后,执行vacuum

2,209

社区成员

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

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