sqlite数据库,怎么可以初始化数据库文件的大小,让数据库文件一创建就有100M。而不是一点点变大。

sqlite数据库,怎么可以初始化数据库文件的大小,让数据库文件一创建就有100M。而不是一点点变大。,第1张

.

命令: .output

sqlite>.output a.txt

然后输入sql语句, 查询出要导的数据. 查询后,数据不会显示在屏幕上,而直接写入文件.

2、

或者你下载一些第三方的工具,直接浏览保存为 xls 文件。

SQLiteMan

SQLite Manager

SQLite Database Browser

SqlPro SQL Client

在程序中,我们经常需要把一些数据持久化,比如一些设置信息和程序配置。QML并不能直接访问本地文件,但是可以通过

Offline Storage API访问本地Sqlite数据库,从而达到目的。

首先在qml目录下创建一个storage.js

Js代码 收藏代码

//storage.js

// 首先创建一个helper方法连接数据库

function getDatabase() {

return openDatabaseSync("MyAppName", "1.0", "StorageDatabase", 100000)

}

// 程序打开时,初始化

function initialize() {

var db = getDatabase()

db.transaction(

function(tx) {

// 如果setting表不存在,则创建一个

// 如果表存在,则跳过此步

tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)')

})

}

// 插入数据

function setSetting(setting, value) {

var db = getDatabase()

var res = ""

db.transaction(function(tx) {

var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?)', [setting,value])

//console.log(rs.rowsAffected)

if (rs.rowsAffected >0) {

res = "OK"

} else {

res = "Error"

}

}

)

return res

}

// 获取数据

function getSetting(setting) {

var db = getDatabase()

var res=""

db.transaction(function(tx) {

var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?', [setting])

if (rs.rows.length >0) {

res = rs.rows.item(0).value

} else {

res = "Unknown"

}

})

return res

}

然后就可以在qml里调用了

Qml代码 收藏代码

import Qt 4.7

//引入storage.js,起个别名Storage,以供后面使用

import "storage.js" as Storage

Rectangle {

width: 360

height: 360

id: screen

Text {

id: textDisplay

anchors.centerIn: parent

}

Component.onCompleted: {

// 初始化数据库

Storage.initialize()

// 赋值

Storage.setSetting("mySetting","myValue")

//获取一个值,并把它写在textDisplay里

textDisplay.text = "The value of mySetting is:\n" + Storage.getSetting("mySetting")

}

}

数据库的创建

创建文件

1.声明文件对象,文件是不会被创建出来的。

File file = new File("文件名称")

2.写文件(文件才会被创建出来)

FileOutputStream fos = new FileOutputStream(file)

fos.write("hdahfdsaklfh".getbytes())

创建数据库

1.实现SQLiteOpenHelper的子类PersonSQLiteOpenHelper

public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {

    public PersonSQLiteOpenHelper(Context context, String name,

            CursorFactory factory, int version) {

        super(context, name, factory, version)

        // TODO Auto-generated constructor stub

    }

    @Override

    public void onCreate(SQLiteDatabase arg0) {

        // TODO Auto-generated method stub

    }

    @Override

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        // TODO Auto-generated method stub

    }

}

2.getWritableDatabase/getReadableDatabase()

新建TestPersonDB.java

  // Called when the database is created for the first time.

    // 在数据库第一次创建的时候执行的方法

    // 如果数据库已经创建完毕,就不会再去执行了。

    // 适合做数据库表结构的初始化 *** 作

    // db代表的就是当前的数据库

    @Override

    public void onCreate(SQLiteDatabase db) {

        // 初始化数据库的表结构

        db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))")

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9844563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存