[MFC]Sqlite问题小记

简介:

一、 使用Sqliteman创建UTF-8和auto_vacuum=1的数据库

    1.1  Sqliteman->New 创建新数据库

    1.2  左边菜单切换到Pragmas

    1.3  选中auto_vacuum这行,点击下方Change Value按钮,输入1,点确定

    1.4  选中encoding这行,同上,但是不能直接输入UTF-8,得输入UTF8或者"UTF-8"(带双引号)点确定

    1.5  最后随便新建一个表,然后退出即可。再次打开即可看到变更后效果,否则在已经存在表的数据库中你无法修改这两个值的。

二、 使用sql语句来创建库和表

    上面用Sqliteman创建数据库并没有解决我的问题,仍然被乱码、错误代码4和8困扰,无奈之下只好用sql来创建和导入初始数据。在CppSQLiteDemo/CppSQLite3Demo.cpp的mian函数中直接写sql语句了,如下:

        remove(gszFile);
        db.open(gszFile);

        
// 创建config
        db.execDML( " create table config(id INTEGER, key TEXT, value TEXT, defaultvalue TEXT, desc TEXT); " );
        db.execDML(
" insert into config values ('1', 'IsAutoSync', '0', '1', '测试数据'); " );

    汉字部分用Sqliteman打开查看是仍然是乱码,但是程序读取出来没有问题。

三、 注意

    3.1  本文使用的代码和库均是参考文章中的库和代码,从代码中可以看出是采用UTF-8打开的连接,使用的方法是sqlite3_open而不是sqlite3_open16,而Sqliteman默认是UTF-16le。

    3.2  CppSQLiteDemo下的工程为VC6的工程,打开后执行报错,你需要把Common/sqlite3.dll拷贝到Debug目录下即可。

四、补充

    4.1  2010-5-21  想自动增长的话设置成INTEGER PRIMARY KEY就可以了,如下:

        db.execDML( " create table config(id INTEGER PRIMARY KEY, key TEXT, value TEXT, defaultvalue TEXT, desc TEXT); " );
        db.execDML(
" insert into config(key,value,defaultvalue,desc) values ('IsAutoSync', '0', '1', '测试'); " );

本文转自博客园农民伯伯的博客,原文链接:[MFC]Sqlite问题小记,如需转载请自行联系原博主。

 

目录
相关文章
|
24天前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
164 0
|
3月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
40 0
|
4月前
|
SQL 数据可视化 关系型数据库
5个实用的SQLite数据库可视化工具(GUI)
5个实用的SQLite数据库可视化工具(GUI)
468 3
|
2月前
|
存储 监控 安全
内网屏幕监控软件的数据存储与管理:使用SQLite数据库保存监控记录和配置信息
在当今数字化时代,安全和监控在企业和组织中变得至关重要。内网屏幕监控软件作为一种关键工具,帮助组织监视员工的活动并确保信息安全。这种软件不仅需要高效地记录和管理监控数据,还需要能够方便地进行配置和调整。本文将讨论如何使用SQLite数据库来保存监控记录和配置信息,并介绍如何通过自动化机制将监控到的数据提交到指定网站。
150 2
|
6天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
1月前
|
关系型数据库 数据库 C++
嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)
嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)
|
1月前
|
存储 SQL 数据库
django如何连接sqlite数据库?
django如何连接sqlite数据库?
38 0
|
2月前
|
SQL 数据库管理
sqlite语句order by两个字段同时排序处理
sqlite语句order by两个字段同时排序处理
19 0
|
2月前
|
SQL 关系型数据库 MySQL
Python中的数据库操作:SQLite与MySQL的连接
Python中的数据库操作:SQLite与MySQL的连接
114 0
|
2月前
|
SQL 存储 数据库
艺术型轻量级数据库 --Sqlite
艺术型轻量级数据库 --Sqlite