CnPack Forum


 
Subject: 请教一个关于SQLite数据库的问题
cnLy_12
新警察
Rank: 1



UID 1155
Digest Posts 0
Credits 3
Posts 3
点点分 3
Reading Access 10
Registered 2005-10-11
Status Offline
Post at 2005-10-11 11:10  Profile | Blog | P.M. 
请教一个关于SQLite数据库的问题

我在操作一个数据库表时,使用除"delete from 表 "外的任何的SQL语句都会出现一个问题:
database disk image is malformed ,这是什么原因导致?
若是因为数据库表内容过多,而我又不想清空数据库表,怎么解决?
急,望不吝赐教,谢谢。
Top
croslq
新警察
Rank: 1



UID 1152
Digest Posts 0
Credits 48
Posts 41
点点分 48
Reading Access 10
Registered 2005-10-10
Status Offline
Post at 2005-10-11 11:41  Profile | Site | Blog | P.M.  | QQ
如果sqlite在处理数据库过程中出现“The database disk image is malformed”,如:你在删除 from sometable时,可能遇到这个问题。
那么就是你的arm板上的空间不够(如在/tmp下),请删除掉一些文件。我遇到的情况是空间还剩1-2M都会出现这个提示。删除后空余4M,就正

常了
Top
cnLy_12
新警察
Rank: 1



UID 1155
Digest Posts 0
Credits 3
Posts 3
点点分 3
Reading Access 10
Registered 2005-10-11
Status Offline
Post at 2005-10-11 11:57  Profile | Blog | P.M. 
re:

我的表数据其实只有4000多行,如果连这点数据都不能支持,那么sqlite实在没有什么优势。现在的问题不是在delete from 表的时候出错,而是在有条件的update或delete 时报错,我不想删除里面的数据,不知道有什么方法可以让我在使用LiteDB.Query(sSQL)时不出错。难道是版本问题?
Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2005-10-18 09:48  Profile | Site | Blog | P.M. 
SQLite 在数据库文件修复方面比较弱,文件损坏后难以修复。如果您使用的是同一个版本的数据库引擎和数据文件,该错误可能表明数据文件被损坏了。您可以试试将数据导出来,重建一个数据库再导进去看看。

SQLite3 已经出来比较长的时间了,如果您还在使用 2 的话,建议升级到最新版本使用。




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
cnLy_12
新警察
Rank: 1



UID 1155
Digest Posts 0
Credits 3
Posts 3
点点分 3
Reading Access 10
Registered 2005-10-11
Status Offline
Post at 2005-10-21 10:11  Profile | Blog | P.M. 
re zjy

你说的方法我试过了,可以的,不过我没有重建数据库,只将数据导出来,再导回去就OK了。只是原因不详,现在看来也只能解释为数据文件受损了。
谢谢。
Top
 




All times are GMT++8, the time now is 2024-11-22 08:40

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.007790 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP