1.Command Line Shell For sqlite@H_403_5@
如果想列出该数据库中的所有表,可:@H_403_5@
.table
@H_403_5@ 如果想查看这些表的结构:@H_403_5@
select * from sqlite_master where type="table";
@H_403_5@ 可以看到类似:@H_403_5@
默认情况下,不会出现红框中的表头,需要之前设置,命令为:@H_403_5@
.header on
@H_403_5@ 如果只想查看具体一张表的表结构,比如查看emperors表,命令为:@H_403_5@
select * from sqlite_master where type="table" and name="emperors";
@H_403_5@ 另外,也可以这样:@H_403_5@
sqlite> .schema emperors
CREATE TABLE emperors( id integer primary key autoincrement,name text,dynasty text,start_year text);@H_403_5@
开发中需要连接sqlite数据库,使用如下方法打开数据库:@H_403_5@
sqliteDatabase database = sqliteDatabase.openDatabase(PATH,null,sqliteDatabase.OPEN_READONLY);@H_403_5@@H_403_5@
程序抛出异常:@H_403_5@
No such table android_Metadata@H_403_5@@H_403_5@
解决办法,将openDatabase方法中最后一个参数修改为@H_403_5@
sqliteDatabase.NO_LOCALIZED_COLLATORS(@H_403_5@打开数据库时,不根据本地化语言对数据进行排序@H_403_5@@H_403_5@)@H_403_5@@H_403_5@@H_403_5@@H_403_5@
再次运行程序,顺利通过。@H_403_5@
3.http://www.jb51.cc/article/p-mrbtlnrj-bcx.html@H_403_5@
这个没看懂,但出的错误提示一样,Android(java):database disk image is malformed (code 11)
4.http://stackoverflow.com/questions/5274202/sqlite3-database-or-disk-is-full-the-database-disk-image-is-malformed@H_403_5@
5.http://hi.baidu.com/wtl0912/item/69327cfe5542440087d27892的@H_403_5@@H_403_5@
android@H_403_5@开发中将已有数据库放到raw文件夹中打包,有的机型会出现@H_403_5@sqlite@H_403_5@Error:databasedisk@H_403_5@imageismalformed@H_403_5@错误,上网查了半天,大家也没说出个结果,后来试着在能正常打开数据库的机子安装后,将该库导入raw文件夹,再重试打包运行在出现错误的机型中,问题解决了,个人认为该错误可能是因为android@H_403_5@_Metadata这个表无法正常建立造成的。@H_403_5@
@H_403_5@
6.http://www.eoeandroid.com/thread-182159-1-1.html@H_403_5@
网上查了一下,好像是sqlite损坏造成的。@H_403_5@
http://www.eoeandroid.com/thread-53730-1-1.html
sqlite有一个很严重的缺点就是不提供Repair命令。@H_403_5@
导致死亡提示database disk image is malformed@H_403_5@
它的产生有很多种可能,比如,磁盘空间不足,还有就是写入数据过程中突然掉电等。@H_403_5@
官方对产生原因的一些说明:@H_403_5@http://www.sqlite.org/lockingv3.html#how_to_corrupt
sqlitemy.sqlite3@H_403_5@
sqlite>PRAGMA integrity_check;@H_403_5@
获得提示@H_403_5@
*** in database main ***@H_403_5@
Page 1518: btreeInitPage() returns error code 11@H_403_5@
On tree page 1566 cell 2: Child page depth differs@H_403_5@
On tree page 1566 cell 3: Child page depth differs@H_403_5@
sql error: database disk image is malformed@H_403_5@
可以尝试通过简单的导出导入方式对损坏的库文件作回复。@H_403_5@
首先导出数据@H_403_5@
sqlite3 my.sqlite3@H_403_5@
sqlite>.output tmp.sql@H_403_5@
sqlite>.dump@H_403_5@
sqlite>.quit@H_403_5@
再倒入到一个新库中@H_403_5@
sqlite3 mynew.sqlite3@H_403_5@
sqlite>.read tmp.sql@H_403_5@
这时新建的mynew.sqlite3一般@H_403_5@
@H_403_5@
http://huaxia524151.iteye.com/blog/1262470
@H_403_5@
sqlite数据库出现错误:database disk image is malformed@H_403_5@
修复方法如下:
D:\workspace\ctrguangfa\db>sqlite3 ctrgf.db3
sqlite version 3.4.0
Enter ".help" for instructions
sqlite> .output "_abctemp.tmp"
sqlite> .dump
sqlite> .quit
D:\workspace\ctrguangfa\db>sqlite3 abc.db3
sqlite version 3.4.0
Enter ".help" for instructions
sqlite> .read "_abctemp.tmp"
sqlite> .quit
http://stackoverflow.com/questions/2960015/android-database-disk-image-is-malformed
http://stackoverflow.com/questions/20086427/not-able-to-access-sqlite-database-android
8:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/