vc++ sqlite3 增删改插 例子
来源:互联网 发布:一年级体测数据 编辑:程序博客网 时间:2024/06/05 21:53
项目demo_sqlite下载地址
(项目中的代码与文章中贴出的代码有小差异,均可使用,文章中的是最新的)
http://download.csdn.net/download/prg1986/4953824
下载sqlite
去www.sqlite.org下载sqlite-amalgamation-*.zip、sqlite-dll-win32-x86-*.zip
本文中将使用的简称
sqlite-amalgamation-3071501.zip : sqlite-amalgamation.zip
sqlite-dll-win32-x86-3071501.zip : sqlite-dll.zip
demo_sqlite_ciud_using_vcpp : demo_sqlite
项目IDE版本
vs2003
生成sqlite3.lib
运行"\MicrosoftVisualStudio.NET2003\Common7\Tools\vsvars32.bat"(即"Microsoft Visual Studio .NET 2003" -> "Visual Studio .NET 工具" -> "Visual Studio .NET 2003 命令提示"), 到目录sqlite-dll下执行以下命令:
"lib /def:sqlite3.def /machine:ix86"
即可生成sqlite3.lib
需要的文件
sqlite-amalgamation\sqlite3.h
sqlite-dll\sqlite3.lib
在项目demo_sqlite中需要使用sqlite3.lib和sqlite3.h
项目demo_sqlite依赖的文件的存放路径
demo_sqlite\sqlite\
sqlite3.h
sqlite3.lib
在项目demo_sqlite中使用sqlite3.lib和sqlite3.h
用vs2003打开项目demo_sqlite, 做以下配置:
项目.属性."C/C++".常规.附加包含目录
".\sqlite"
项目.属性.链接器.常规.附加库目录
".\sqlite"
项目.属性.链接器.输入.附加依赖项
"sqlite3.lib"
至此, 即可编译运行
注意
第二次以后运行程序,运行前需要手动删除debug目录下生成的demo.db
代码
/*author : program2013date : 2013.1.2fileName : DemoSqliteCiudUsingVcpp.cpp*/#include <tchar.h>#include "sqlite3.h"#include <iostream>using namespace std;#define NULL_CALLBACK NULLsqlite3 * pDbConnection = NULL;const char * szSqlCreate = " create table tb_usr(id integer primary key autoincrement, name varchar(16), score integer); ";char * szSqlInsertFormat = " insert into tb_usr(name, score) values('%s', %d); ";char * szSqlDeleteFormat = " delete from tb_usr where name= '%s'; ";char * szSqlUpdateFormat = " update tb_usr set score=%d where name='%s'; ";const char * szSqlQuery = " select id, name, score from tb_usr; ";char szSql[128];//create table structurebool createTable(char* szErrorInfo){return (SQLITE_OK == sqlite3_exec(pDbConnection , szSqlCreate, NULL_CALLBACK, NULL, &szErrorInfo));}//add recordbool insertRecord(const char * szName, int nScore, char* szErrorInfo){sprintf(szSql, szSqlInsertFormat, szName, nScore); return ( SQLITE_OK == sqlite3_exec(pDbConnection , szSql, NULL_CALLBACK, NULL, &szErrorInfo) );}//delete recordbool deleteRecord(const char * szName, char* szErrorInfo){sprintf(szSql, szSqlDeleteFormat, szName); return ( SQLITE_OK == sqlite3_exec(pDbConnection, szSql, NULL_CALLBACK, NULL, &szErrorInfo) );}//update recordbool updateRecord(const char * szName, int nScore, char* szErrorInfo){sprintf(szSql, szSqlUpdateFormat, nScore, szName); return ( SQLITE_OK == sqlite3_exec(pDbConnection, szSql, NULL_CALLBACK, NULL, &szErrorInfo) );}int displayResultSet(void *NotUsed, int recordCount, char **record, char **colName){ for(int i = 0; i < recordCount; i++) { cout << colName[i] << " = " << (record[i] ? record[i] : "NULL") << ", "; } cout << endl; return 0;}//query recordbool queryRecord(char* szErrorInfo){ return ( SQLITE_OK == sqlite3_exec(pDbConnection, szSqlQuery, displayResultSet, NULL, &szErrorInfo) );}void myExit(sqlite3 * pDbConnection, const char* szErrorInfo){sqlite3_close(pDbConnection);cout << szErrorInfo << endl;system("pause");exit(0);}int _tmain(int argc, _TCHAR* argv[]){char szErrorInfo[256] = {'\0'}; if( SQLITE_OK != sqlite3_open(".\\demo.db", &pDbConnection) ) {string strErrorInfo("error to open database, ");strErrorInfo += sqlite3_errmsg(pDbConnection); myExit(pDbConnection, strErrorInfo.c_str()); }//create table structureif ( !createTable(szErrorInfo) ){myExit(pDbConnection, szErrorInfo);} //add record if ( !( insertRecord("zhangsan", 90, szErrorInfo) && insertRecord("wangwu", 69, szErrorInfo) && insertRecord("lisi", 58, szErrorInfo) ) ) { myExit(pDbConnection, szErrorInfo); } //delete zhangsan if ( !deleteRecord("zhangsan", szErrorInfo) ) {myExit(pDbConnection, szErrorInfo); } //update lisi if ( !updateRecord("lisi", 98, szErrorInfo) ) {myExit(pDbConnection, szErrorInfo); } //query record if ( !queryRecord(szErrorInfo) ) {myExit(pDbConnection, szErrorInfo); }szErrorInfo[0] = '\0';myExit(pDbConnection, szErrorInfo);return 0;}
项目demo_sqlite下载地址
(项目中的代码与文章中贴出的代码有小差异,均可使用,文章中的是最新的)
http://download.csdn.net/download/prg1986/4953824
- vc++ sqlite3 增删改插 例子
- 增删改插
- 购物车(增删改插)
- sqlite3增删查改应用
- HBase学习-表的增删改插
- 购物车4 增删改插
- Sqlite3 增删改查操作实例
- IOS sqlite3 数据增删改查
- sqlite3增删改查C++类实现
- django sqlite3增删改查
- sqlite3 常用语法 增删改查
- sqlite3增删改查,导入导出
- C++实现Sqlite3增删改查
- django sqlite3 后台数据库的增删改查
- hibernate 增删改查例子
- 数据库增删改查例子
- Angularjs增删改查例子
- oracle的增删改插和子查询
- VC++6.0中使用MsChart总结
- nmap扫描网段内的所有IP
- 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- poj 2552 第几个素数
- 树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器
- vc++ sqlite3 增删改插 例子
- PHPCMS V9 WAP模块注入漏洞
- unix network programming
- PHPCMS V9 任意文件读取漏洞
- C&C++编程过程中的小Tips
- 史上最强的银行系统(带文件读写版)
- 编译boost (boost_1_52_0)
- _CRT_SECURE_NO_DEPRECATE
- iOS app's structure