易截截图软件、单文件、免安装、纯绿色、仅160KB

Qtopia中使用SQLite总结及SQLite中存储中文操作

【工作环境:基于友善之臂mini2440开发板+Qtopia2.2版本+RedHat9+SQLite-3.3.6】
1.Qtopia中使用SQLite
由于Qt2不支持数据库操作,(Qt3版本就提供了支持数据库操作的类,但是Qtopia2比较经典,是基于Qt2的,没办法!)所以在Qt/Qtopia程序中需要数据库时,可以考虑在Qt中使用Linux下操作SQLite数据库的方法。(表达的有点不清楚,呵呵,基本上就是直接把Linux下操作SQLite的代码Copy到QT程序的某一个函数下。)
需要我们修改的地方:
①在Qtopia程序中添加头文件sqlite3.h
②在Makefile文件中LIBS添加SQLite库的安装路径
如:-L/usr/local/sqlite-3.3.6/lib -lsqlite3
③如果是编译在开发板上运行的程序,则添加arm平台下编译的sqlite的库路径。(先把编译好的库拷贝到开发板,执行export LD_LIBRARY_PATH,让你的系统能够识别库路径)
2.SQLite中存储中文操作
之前可以在Qtopia中显示中文,后来程序中需要调用数据库的信息且要是中文的,就试了下,可以显示。(自己总结一下,数据库中存储的还不是0和1吗,不管你是中文还是英文,只要你输入的时候和输出的时候提供一致的编码,就可以了。)
①这里都使用UTF-8编码方式,输入中文的环境一定也要是UTF-8的(我的Vi打开的就不是),用QtCreator工具,可以选择编码打开类型。
利用编程insert,插入一个中文字段。
char *zErrMsg = 0;
char *sql;
char buf[256];
char *v1="你好";
sprintf(buf,"insert into \"gpio_config_info\" values('%s');",v1);
sql=buf;
sqlite3_exec(db,sql,0,0,&zErrMsg);

②查询和使用数据库中保存的中文信息
char *zErrMsg = 0;
char *sql;
int nrow = 0, ncolumn = 0;
char **azResult;
sql = "SELECT * from gpio_config_info";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
int i = 0 ;
printf( "row:%d column=%d \n" , nrow , ncolumn );
printf( "\nThe result of querying is : \n" );
item1->setText(2,codec->toUnicode(azResult[8]));//azResult[8]即为对应的“你好”字段
for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
printf( "azResult[%d] = %s\n", i , azResult[i] );
sqlite3_free_table(azResult);

这样在Qtopia程序中就可以显示出中文了。


相关文档:

sqlite使用总结1

前序:... 1
一、 版本... 1
二、 基本编译... 2
三、 SQLITE操作入门... 2
(1) 基本流程... 2
(2) SQL语句操作... 4
(3) 操作二进制... 8
(4) 事务处理... 10
四、 给数据库加密... 10
五、 后记... 25
前序:
Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够 ......

sqlite总结2


(2)              SQL语句操作
本节介绍如何用sqlite 执行标准 sql 语法。
 
i.1            执行sql语句
int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callback, void ......

sqlite内存数据库使用有感

SQLite不仅可以把数据库 放在硬盘上,还可以放在内存中(sqlite3_open(":memory:", &db)),经测试,同样条件下数据库放在内存中比放在硬盘上插入记录速度快差不多3倍。但数据库放在内存中时有如下缺陷:
1、断电或程序崩溃后数据库就会消失,你需要定期Attach到硬盘上备份;
2、在内存中的数据库不能被别的进程 ......

SQLite简介

1、SQLite简介
  SQLite第一个Alpha版本诞生于2000年5月. 至今已经有4个年头了. SQLite也迎来了一个版本 SQLite 3已经发布.
 
 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资
源非常的低,在嵌入式设备中,可能只需要 ......

[收拢] 用sqlite 执行标准 sql 语法

http://www.umgr.com/blog/PostView.aspx?bpId=36294
 1. 执行sql语句
int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callbacksql 语法
, void *,  char **errmsg );
这就是执行一条 sql 语句的函数。
第1个参数不再说了,是前面open函数得到的指针。说了是关键数据结构。
第2个参数const char ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号