SQLite3介绍
来源:互联网 发布:软件开发 课程 编辑:程序博客网 时间:2024/05/16 11:13
SQLite介绍
SQLite是一个完全独立的、不需要服务器、不要任何配置、支持SQL的、开源的文件数据库引擎。源代码和支持可以登录:http://www.sqlite.org/ 。
一、 代码编译
1、 开发者若要使用SQLite,登录网站下载源代码。包括(以VS2010编译版本Version 3.7.10为例):
sqlite-amalgamation-3071000.zip 包含.h文件和.cpp文件
sqlite-shell-win32-x86-3071000.zip 包含.def文件和DLL文件
2、 编译步骤如下:
1) 利用VS2010新建一个Win32工程,应用程序类型选择DLL,并勾上“Empty Project”选项;
2) 然后将下载的.h文件、.cpp文件和.def文件拷贝到工程目录下;
3) 在VS2010的“Solution Explorer”中,“Header Files”加入.h文件,“Source Files”加入.cpp和.def文件;
4) 工程设置【Linker】à【Input】à【Module Definition File】中填入“.\sqlite3.def”;
5) 编译工程;
6) 若提示如下错误:
Error LNK2001: unresolved external symbol sqlite3_column_database_name
Error LNK2001: unresolved external symbol sqlite3_column_database_name16
…… ……
工程设置【C/C++】à【Preprocessor】à【Preprocessor Definitions】加入编译选项:
THREADSAFE
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_RTREE
重新编译工程。
二、 示例代码
#include <stdio.h>#include <stdlib.h>#include "sqlite3.h" int main(void){sqlite3* sqlite3_db= NULL;// 数据库对象指针char* zErrMsg = 0;int rc;rc = sqlite3_open("wy.db", &sqlite3_db);// 打开数据库文件,如果不存在将创建一个同名的数据库文件if(rc){fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(sqlite3_db));sqlite3_close(sqlite3_db);return (1);}else{printf("You have opened a sqlite3 database named wy.db successfully! Congratulations! Have fun ! ^-^ \n");}//创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中char* sql = " CREATE TABLE SensorData(ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTEGER,Time VARCHAR(12),SensorParameter REAL);";sqlite3_exec(sqlite3_db , sql , 0 , 0 , &zErrMsg);#ifdef _DEBUGprintf("zErrMsg = %s \n", zErrMsg);#endif//插入数据 sql = "INSERT INTO 'SensorData' VALUES(NULL , 1 , 1 , '200605011206', 18.9);";sqlite3_exec(sqlite3_db , sql , 0 , 0 , &zErrMsg);sql = "INSERT INTO 'SensorData' VALUES(NULL , 23 , 45 , '200605011306', 16.4);";sqlite3_exec(sqlite3_db , sql , 0 , 0 , &zErrMsg);sql = "INSERT INTO 'SensorData' VALUES(NULL , 34 , 45 , '200605011306', 15.4);";sqlite3_exec(sqlite3_db , sql , 0 , 0 , &zErrMsg);int nrow = 0, ncolumn = 0;char **azResult;// 二维数组存放结果//查询数据sql = "SELECT * FROM SensorData";sqlite3_get_table(sqlite3_db , sql , &azResult , &nrow , &ncolumn , &zErrMsg);printf("row:%d column=%d \n" ,nrow,ncolumn);printf(" The result of querying is : \n");for(int i=0; i<(nrow + 1) * ncolumn; i++)printf("azResult[%d] = %s \n", i , azResult[i]);// 删除数据sql = "DELETE FROM SensorData WHERE SensorID = 1;";sqlite3_exec(sqlite3_db , sql , 0 , 0 , &zErrMsg);#ifdef _DEBUGprintf("zErrMsg = %s \n", zErrMsg);#endifsql = "SELECT * FROM SensorData ";sqlite3_get_table(sqlite3_db , sql , &azResult , &nrow , &ncolumn , &zErrMsg);printf(" row:%d column=%d \n" , nrow , ncolumn);printf(" After deleting , the result of querying is : \n");for(int i=0; i<(nrow + 1) * ncolumn; i++)printf("azResult[%d] = %s \n", i , azResult[i]);// 释放掉 azResult 的内存空间sqlite3_free_table(azResult);#ifdef _DEBUGprintf("zErrMsg = %s \n", zErrMsg);#endifsqlite3_close(sqlite3_db);// 关闭数据库return 0;}
- SQLite3介绍
- SQLite3介绍
- sqlite3 命令介绍
- SQLite3 C/C++介绍
- sqlite3 命令介绍
- SQLite3介绍及使用方法
- sqlite3使用简单介绍
- SQLite3 命令行命令介绍
- Sqlite3 常用命令介绍
- django sqlite3介绍
- sqlite3全文索引介绍
- 嵌入式sqlite3数据库编程介绍
- SQLite3 介绍与使用相关
- cocos2dx sqlite3 详细用法介绍
- 《SQLite3——FMDB介绍》
- SQLite3 C/C++编程接口介绍
- sqlite3 --sql命令简单介绍
- SQLite3 C/C++编程接口介绍
- 让Double类型完整显示,不用科学计数法显示E
- 找回误删并清除了回收站的文档
- LookaSide分配内存
- VC中ListCtrl经验总结
- ASCII码表
- SQLite3介绍
- 艾宾浩斯记忆遗忘曲线
- Linux CentOS下Hadoop伪分布模式安装笔记
- 手把手教你配置OGRE环境
- PB函数大全
- 将C语言源代码编译成动态链接库
- JPAGE_CURRENT_OF_TOTAL
- c语言改变字体颜色
- fs:[124]对应CurrentThread