Qt For Android 数据库操作
作者:qyvlik
Qt 中的数据库操作,由于内嵌了一个 sqlite 数据库驱动,在普通应用中可以较为轻松地应付一些需求。
Qt Quick Local Storage
QML 提供了一个 QtQuick.LocalStorage 模块,用以操作 sqlite 数据库。不支持异步。
由于Web SQL Database规范已经被废弃,原因说的很清楚,当前的 SQL 规范采用 SQLite 的 SQL 方言,而作为一个标准,这是不可接受的,每个浏览器都有自己的实现这还搞毛的标准。
当然,在 QML 的世界里大可不必担心这个。Qt 使用统一的实现标准,表现出来的平台无关性。
接口描述
QtQuick.LocalStorage 模块实现的是非异步的 Web SQL Database。
打开数据库
W3C 标准描述了如下打开数据库的接口:
[Supplemental, NoInterfaceObject]
interface WindowDatabase {
Database openDatabase(in DOMString name,
in DOMString version,
in DOMString displayName,
in unsigned long estimatedSize,
in optional DatabaseCallback creationCallback);
};
Window implements WindowDatabase;
[Supplemental, NoInterfaceObject]
interface WorkerUtilsDatabase {
Database openDatabase(in DOMString name,
in DOMString version,
in DOMString displayName,
in unsigned long estimatedSize,
in optional DatabaseCallback creationCallback);
DatabaseSync openDatabaseSync(in DOMString name,
in DOMString version,
in DOMString displayName,
in unsigned long estimatedSize,
in optional DatabaseCallback creationCallback);
};
WorkerUtils implements WorkerUtilsDatabase;
[Callback=FunctionOnly, NoInterfaceObject]
interface DatabaseCallback {
void handleEvent(in Database database);