SQLite中设置PRAGMA page_size;

greenkiller 2011-04-08 01:29:17
官方文档对page_size这个参数有这样的描述:
The page size may only be set if the database has not yet been created.

但是PRAGMA page_size = bytes;作为一句SQL语句,如果没有数据库,如何指定数据库并执行该语句?

对这个变量的设置是不需要使用sqlite3_exec函数的吗?

谢谢。
...全文
618 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
upczap 2011-07-14
  • 打赏
  • 举报
回复
谢谢,学习了!
iihero_ 2011-04-08
  • 打赏
  • 举报
回复
需要这个函数执行,但要在所有建表语句 之前执行:
参考帮助原文:
The page_size pragma will only cause an immediate change in the page size if it is issued while the database is still empty, prior to the first CREATE TABLE statement.
http://www.sqlite.org/pragma.html
greenkiller 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iihero 的回复:]

需要这个函数执行,但要在所有建表语句 之前执行:
参考帮助原文:
The page_size pragma will only cause an immediate change in the page size if it is issued while the database is still empty, prior to the first CREATE TABLE stateme……
[/Quote]

万谢。是我读的不仔细了~
这是我工作了一天的成果,压缩包内包括Qt sqlite加密驱动所有的代码,以及一个调用例程,还有一个sqlite3shell.exe工具,用于加密数据库命令行下的分析。 使用这个加密驱动很简单,只需以下3步: 1. 将驱动的代码复制到你的app文件夹(共2个文件夹) 2. 在app的pro文件加入 include(wxsqlite3/wxsqlite3.pri) include(zsqlitecipherdriver/zsqlitecipherdriver.pri) 3. 在需要的地方加入#include "zsqlitecipherdriver.h",这样就可以使用ZSQLiteCipherDriver类了,这个类是继承自QSqlDriver。所以可以传递给 QSqlDatabase::addDatabase。 详细的可以查看压缩包内源码。之后,main函数就可以这么使用sqlite的加密驱动: ZSQLiteCipherDriver *driver = new ZSQLiteCipherDriver(); QSqlDatabase db = QSqlDatabase::addDatabase(driver); db.setDatabaseName("test.db"); db.setPassword("123"); db.open(); ... 加密驱动的稳定性没有问题,是我从Qt的开源代码,找到Sqlite没加密的驱动部分,然后修改的。修改的内容不多,最重要的是在数据库的open时,加入了sqlite3_key的调用,实现加密。 底层的加密实现,是来自wxsqlite3-3.0.6。这个我修改了一个宏定义,让其加密方式采用了AES256,而不是原来的AES128。 例程包括了3个实用的函数,分别用来以某一密码打开或创建一个数据库,判断数据库是否处于解密状态,以及修改数据库密码。 sqlite3shell.exe跟官方提供的sqlite3.exe使用方法一样。只不过对于加密数据库,需要在对数据库进行任何操作前,先执行“PRAGMA key=xxx;”。通过这种方式输入数据库密码。检验之前的密码是否正确可以在命令行键入“.databases”,如果没有错误提示,那就是解密成功了;如果密码错误,只能关闭sqlite3shell.exe,从头尝试了。 虽然这个资源,要的分数确实有点多,不过评价之后就能返还的。我相信这个资源值这个价值!下载后在Qt5上可以直接编译。不需要任何修改。Qt4上没试过,不承诺一定可用,但是应该没问题。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧