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