webos里面的sqlite的db储存位置一般是在:
假如加多一个ext:,那么db会储存在:/media/internal/.app-storage
但名字都是随机的,那么他怎么联系起来的呢?原来他是将显示的名字,和真实的名字存储在/var/home/root/html5-databases/Databases.db里面(我看的是1.4.1版本)。在databases这个table里。里面的表结构如下:
运行sqlite Databases.db .schema
CREATE TABLE Databases (guid INTEGER PRIMARY KEY AUTOINCREMENT, origin TEXT, name TEXT, displayName TEXT, estimatedSize INTEGER, path TEXT);
CREATE TABLE Origins (origin TEXT UNIQUE ON CONFLICT REPLACE, quota INTEGER NOT NULL ON CONFLICT FAIL);
openDatabase( DatabaseName, DatabaseVersion, DisplayName, EstimatedSize )
这里要小心填写数据库的版本参数,如果你设置的和本地的版本不符合,操作将会失败。这个参数的原理是 有机会扩展和升级数据库,但也可能带来一大堆其他的麻烦。
执行查询
通过数据库事务(transaction)进行异步访问(asynchronous access)的接口:
transaction.executeSQL( SQLStatement, SQLParameters, ResultsetCallback, ErrorCallback )
以及我们如何使用:
db.transaction(function(tx) { tx.executeSql('SELECT * FROM MyTable WHERE CategoryField = ?', [ selectedCategory ], function (tx, rs) { displayMyResult(rs); }, function (tx, err) { displayMyError(err); } ); });
这个迷人的例子展示了如何从DB中取得数据,或者说是如何执行SQL语句,再这个例子中 displayMyResult(rs) 与 displayMyError(err) 只是个占位符,代表你对错误信息做的任何事情。
这就是它的基本知识,现在你就可以写自己的离线应用了!
没有评论:
发表评论