SQLite之增删改查(C++详解)

前端之家收集整理的这篇文章主要介绍了SQLite之增删改查(C++详解)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

开始我们的sqlite之旅吧!其实原来对sqlite一无所知,毫不夸张的可以说是听都没听过吧,一次偶然的机会我发现了这个数据库,但是发现网上资料不是很多然后慢慢研究它,最后总结出一些小知识吧,拿出来和大家分享分享,供大家参考。。。如有错误,请各位大虾多多指正!

开发所需依赖

下载地址:http://www.sqlite.org/download.html

在该页面上下载Source Code中的sqlite-amalgamation-3071300.zip,该包有含有两个头文件,两个实现文件

下载Precompiled Binaries For Windows中的sqlite-dll-win32-x86-3071300.zip,该包中含有一个def文件,一个dll文件

新建一个win32控制台应用程序sqlite,选择空项目。

方法一:将所得dllsqlite3.hsqlite3.lib文件拷贝到../工程/sqlite/下,点击头文件,选择添加现有项,选择拷贝的sqlite.h文件,选择工程->属性->链接->输入->附加依赖项,填写sqlite3.lib,再在原文件中编写自己的主程序。

方法二:将sqlite3.hsqlite3.csqlite3.lib文件拷贝../工程/sqlite/下,点击头文件,选择添加现有项,选择拷贝的sqlite3.h文件。点击源文件添加现有项,选择拷贝的sqlite3.c文件,选择工程->属性->链接->输入->附加依赖项,填写sqlite3.lib,然后开始自己的主程序。

示例代码

文件my_db.hsqlite3.h

文件sqlitedb.cpptest.cpp

————————————————————————————————————————————

my_db.h代码

@H_502_163@

#ifndef MY_DB_H

#define MY_DB_H

@H_502_163@

int open_db();

int create_table();

int drop_table();

int insert_data(int id,char *name,int age);

int search_data(int id);

int search_data(char *name);

int delete_data(int age);

@H_502_163@

#endif

———————————————

sqlitedb.cpp代码

#include "sqlite3.h"

#include "mydb.h"

#include <iostream>

using namespace std;

@H_502_163@

sqlite3 *db = NULL; //定义数据库连接

const char *errMsg = 0; //定义错误信息

char *zerrMsg = 0; //定义错误信息

@H_502_163@@H_502_163@@H_502_163@@H_502_163@

//打开数据库

int open_db()

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int rc = sqlite3_open("E:/Program code/sqlite code/sqlitedb.db",&db); //打开数据库

@H_502_163@@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc != sqlITE_OK)@H_502_163@@H_502_163@@H_502_163@ //数据库打开失败

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ errMsg = sqlite3_errmsg(db); //获取错误信息

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<errMsg<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db); //关闭数据库连接

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return -1;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"open database successfully!"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

@H_502_163@

//创建表

int create_table()

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(open_db() != 0)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ open_db();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ char *sql = "create table tab(id int primary key,name varchar(20),age int)";

@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int rc = sqlite3_exec(db,sql,NULL,&zerrMsg);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc != sqlITE_OK)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ errMsg = sqlite3_errmsg(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<errMsg<<endl; // cout<<zerrMsg<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return -1;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"创建表成功!"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

@H_502_163@

//删除

int drop_table()

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(open_db() != 0)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ open_db();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ char *sql = "drop table tab";

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int rc = sqlite3_exec(db,&zerrMsg);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc != sqlITE_OK)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ errMsg = sqlite3_errmsg(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<errMsg<<endl; // cout<<zerrMsg<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return -1;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"删除表成功"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

@H_502_163@

//数据添加

int insert_data(int id,int age)

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(open_db() != 0)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ open_db();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_stmt *stmt = NULL; //准备语句对象

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ char *sql = "insert into tab(id,name,age) values(?,?,?)";

@H_502_163@@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int rc = sqlite3_prepare_v2(db,strlen(sql),&stmt,NULL);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc != sqlITE_OK)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ errMsg = sqlite3_errmsg(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<errMsg<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(stmt)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return -1;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_bind_int(stmt,1,id);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ //参数一:准备语句对象参数二:序号(从开始)参数三:字符串值参数四:字符串长度参数五:函数指针,sqlITE3执行完操作后回调此函数,通常用于释放字符串占用的内存。(这个函数指针参数具体怎么使用,我现在还不清楚

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_bind_text(stmt,2,strlen(name),NULL);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_bind_int(stmt,3,age);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(sqlite3_step(stmt) != sqlITE_DONE)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"插入数据失败!"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return -1;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"数据插入成功!"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_reset(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

@H_502_163@

//数据查询根据id唯一性查询

int search_data(int id)

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(open_db() != 0)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ open_db();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ char *sql = "select * from tab where id = ?";

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_stmt@H_502_163@ *stmt = NULL;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int rc = sqlite3_prepare_v2(db,id);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int nColumn = sqlite3_column_count(stmt); //获取数据库表的列数

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int type; //表字段所对应的类型

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ rc = sqlite3_step(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc == sqlITE_ROW)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ for(int i=0;i<nColumn;i++)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ type = sqlite3_column_type(stmt,i);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(type == sqlITE_INTEGER)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<sqlite3_column_name(stmt,i)<<"\t"<<sqlite3_column_int(stmt,i)<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(type == sqlITE_TEXT)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<sqlite3_column_name(stmt,i)<<"\t"<<sqlite3_column_text(stmt,i)<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ else if(type == sqlITE_NULL)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"no value"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ else if(rc == sqlITE_DONE)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"select finish!"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ else

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"select fail"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

@H_502_163@

@H_502_163@

//数据查询根据姓名批量查询

int search_data(char *name)

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(open_db() != 0)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ open_db();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ char *sql = "select * from tab where name = ?";

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_stmt@H_502_163@ *stmt = NULL;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int rc = sqlite3_prepare_v2(db,NULL);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc != sqlITE_OK)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ errMsg = sqlite3_errmsg(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<errMsg<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(stmt)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return -1;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_bind_text(stmt,NULL);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int nColumn = sqlite3_column_count(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int type;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ rc = sqlite3_step(stmt);//如果是select语句,且有还有记录,则应该返回sqlITE_ROW

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ while(true) {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc == sqlITE_ROW)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"--------------"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ for(int i=0;i<nColumn;i++)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ type = sqlite3_column_type(stmt,i);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(type == sqlITE_INTEGER)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<sqlite3_column_name(stmt,i)<<"\t"<< sqlite3_column_int(stmt,i)<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(type == sqlITE_TEXT)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<sqlite3_column_name(stmt,i)<<"\t"<< sqlite3_column_text(stmt,i)<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ else if(type == sqlITE_NULL)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"no value"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ else if(rc == sqlITE_DONE)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"select finish!"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ else

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ @H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"select fail"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if (sqlite3_step(stmt) != sqlITE_ROW)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ break;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

@H_502_163@

//删除数据

int delete_data(int age)

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(open_db() != 0)

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ open_db();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ char *sql = "delete from tab where age = ?";

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_stmt@H_502_163@ *stmt = NULL;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ int rc = sqlite3_prepare_v2(db,age);@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ rc@H_502_163@ = sqlite3_step(stmt);//如果是update,delete,insert等语句,正常应该返回sqlITE_DONE

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ if(rc == sqlITE_DONE)//sqlITE_DONE意味着已成功完成执行该语句

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ {

@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@@H_502_163@ cout<<"删除数据成功"<<endl;

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ }@H_502_163@@H_502_163@@H_502_163@

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_finalize(stmt);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ sqlite3_close(db);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

———————————————

test.cpp代码

#include "mydb.h"

#include <iostream>

using namespace std;

int main()

{

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ open_db();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ //create_table();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ //drop_table();

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ //insert_data(2,"wang",24);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ //search_data(1);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ //search_data("wang");

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ //delete_data(24);

@H_502_163@@H_502_163@@H_502_163@@H_502_163@ return 0;

}

———————————————

最后再为大家推荐几款管理工具,希望对大家有更好地帮助。

管理工具也有不少,这里介绍几款:

1sqlite Manager开放源代码SQLite管理工具,用来管理本地电脑上的sqlite数据库,可以独立运行(以XULRunner方式),也可以作为FirefoxThunderbirdSeamonkeySongbirdKomodoGecko等的插件

2sqlite Administrator是一个用来管理 SQLite 数据库文件的图形化工具,可进行创建、设计和管理操作。提供代码编辑器具有自动完成和语法着色,支持中文,适合初学者。

3sqlite Database browser是一个 sqlite 数据库的轻量级GUI客户端,基于Qt库开发,界面清洁,操作简单,主要是为非技术用户创建、修改和编辑sqlite数据库的工具,使用向导方式实现。

猜你在找的Sqlite相关文章