sqlite的UNICODE接口CppSQLite3Query简单示例

来源:互联网 发布:网络爬虫系统架构图 编辑:程序博客网 时间:2024/06/05 04:54

sqlite简介:

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。

更多详细介绍,自己去找吧。

sqlite使用示例:

创建一个学生数据库示例:

包含3个表,分别是学生表,课程表,学生课程成绩表,3个表通过关键字建立联系。

void create_table(){CString strDbPath;GetCurrentDirectory(strDbPath);strDbPath += STUDENT_DB_FILE_NAME;CppSQLite3DB db;try{// 打开或新建一个数据库db.open(strDbPath); // 创建表1if(!db.tableExists(TEXT("学生表"))) {// 不存在,新建表1db.execDML(TEXT("CREATE TABLE 学生表(学号 varchar(50) NOT NULL PRIMARY KEY, 姓名 varchar(50), 性别 varchar(50));"));}// 插入记录db.execDML(TEXT("INSERT INTO 学生表 VALUES('01101', '李海', '男');"));db.execDML(TEXT("INSERT INTO 学生表 VALUES('01102', '王鹏', '女');"));// 创建表2if(!db.tableExists(TEXT("课程表"))) {// 不存在,新建表1db.execDML(TEXT("CREATE TABLE 课程表(课程编号 integer PRIMARY KEY AUTOINCREMENT NOT NULL, 课程名称 varchar(50));"));}// 插入记录db.execDML(TEXT("INSERT INTO 课程表 (课程名称) VALUES( '计算机基础');"));db.execDML(TEXT("INSERT INTO 课程表 (课程名称) VALUES( '程序设计');"));// 创建表3if(!db.tableExists(TEXT("学生课程成绩表"))) {// 不存在,新建表1db.execDML(TEXT("CREATE TABLE 学生课程成绩表(学号 varchar(50), 课程编号 varchar(50), 成绩 varchar(50));"));}// 插入记录db.execDML(TEXT("INSERT INTO 学生课程成绩表 VALUES('01101', '101', '80');"));db.execDML(TEXT("INSERT INTO 学生课程成绩表 VALUES('01101', '102', '87');"));db.execDML(TEXT("INSERT INTO 学生课程成绩表 VALUES('01102', '101', '85');"));db.execDML(TEXT("INSERT INTO 学生课程成绩表 VALUES('01102', '102', '88');"));// 关闭数据库db.close();AfxMessageBox(TEXT("测试完成!"));}catch(CppSQLite3Exception ex){AfxMessageBox(ex.errorMessage());}}

读取数据库表示例:

void read_table(){CString strDbPath;GetCurrentDirectory(strDbPath);strDbPath += STUDENT_DB_FILE_NAME;CppSQLite3DB db;try{// 打开或新建一个数据库db.open(strDbPath); // 创建表1if(!db.tableExists(TEXT("课程表"))) {// 不存在表AfxMessageBox(TEXT("数据库是空的"));return;}// 获取总记录条数int nCount = db.execScalar(TEXT("SELECT COUNT(*) FROM 课程表;"));TCHAR szCount[50] = {0};memset(szCount, 0, sizeof(szCount));wsprintf(szCount, TEXT("Record count: %d.\n"), nCount);TRACE(szCount);// 获取每一条记录CppSQLite3Query qBuf = db.execQuery(TEXT("SELECT * FROM 课程表;"));while (!qBuf.eof()){CString cstmp;cstmp.Format(TEXT("%d,%s\n"), qBuf.getIntField(0),qBuf.fieldValue(1)); OutputDebugString(cstmp);qBuf.nextRow();}// 销毁语句qBuf.finalize();// 关闭数据库db.close();AfxMessageBox(TEXT("测试完成!"));}catch(CppSQLite3Exception ex){AfxMessageBox(ex.errorMessage());}}


所有代码在VS2008上编译通过,整个工程源码下载地址:

源码下载地址


更多帮助请参考:

sqlite使用说明

1 0
原创粉丝点击