加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite3 C 笔记

发布时间:2020-12-12 19:29:12 所属栏目:百科 来源:网络整理
导读:一.安装 1.下载源码和Windows dll两个压缩包 2.编译lib 将dll中的def文件复制到源码目录下执行 LIB /out:sqlite3.lib /MACHINE:IX86 /DEF:sqlite3.def 3.将.lib和dll,sqlite3.h复制到源码目录 就可以使用sqlite3了 二.入门编程 #include string.husing names

一.安装

1.下载源码和Windows dll两个压缩包

2.编译lib 将dll中的def文件复制到源码目录下执行

LIB /out:sqlite3.lib /MACHINE:IX86 /DEF:sqlite3.def

3.将.lib和dll,sqlite3.h复制到源码目录

就可以使用sqlite3了

二.入门编程

#include <string.h>
using namespace std;
#include "sqlite3.h"
#pragma comment(lib,"SQLITE3.LIB")
static int SelectCallback(void *notUsed,int argc,char **argv,char **azColName)
{
 for (int i = 0 ; i < argc ; i++)
 {
 printf("%s = %s",azColName[i],(argv[i] ? argv[i] : "NULL"));
 if (i != argc -1)
 {
 printf(",");
 }
 }
 printf("n");
 return 0;
}
int _tmain(int argc,_TCHAR* argv[])
{
 sqlite3 * pDB;
 char* errMsg;
// 打开SQLite数据库
 int res = sqlite3_open("sql.db",&pDB);
 if ( res != SQLITE_OK ){
 printf("Can't open database: %sn",sqlite3_errmsg(pDB));
 sqlite3_close(pDB);
 return -1;
 }
// 创建表
 string strSQL= "create table test (id int,name text);";
 res = sqlite3_exec(pDB,strSQL.c_str(),&errMsg);
 if (res != SQLITE_OK)
 {
 printf("Create table error: %sn",errMsg);
 //return -1;
 }
// 插入数据
 res = sqlite3_exec(pDB,"begin transaction;",&errMsg);
 for (int i= 1; i < 10; ++i)
 {
 char sql[512];
 sprintf_s(sql,"insert into test values(%d,%s);",(i+10),""Test Name"");
res = sqlite3_exec(pDB,sql,&errMsg);
 if (res != SQLITE_OK)
 {
 printf("Insert error: %sn",errMsg);
 return -1;
 }
 }
 res = sqlite3_exec(pDB,"commit transaction;",&errMsg);
// 查询数据
 strSQL= "select * from test;";
 res = sqlite3_exec(pDB,SelectCallback,&errMsg);
 if (res != SQLITE_OK)
 {
 printf("Select error: %sn",errMsg);
 return -1;
 }
 // 关闭数据库
 sqlite3_close(pDB);
return 0;
}


三.常用语句

selete * from tableNamewhere 条件

select count(*) from tableName

create table tableName(id integer primary key autoincrement,name varchar(100)

insert into tableNamevalues(va1,va2)


四.常用函数

sqlite3_open()

sqlite3_exec();一般需要写回调函数

sqlite3_get_table();使用此函数可以不用写回调函数

sqlite3_close(db);

五.本文目的

一一般网上大多数Sqlite3 c/C++教程都是使用四中的函数来进行结果查询,感觉麻烦,比如只是想知道一个表中有没有叫王二的人可以使用selete count(*) from tableName where name = "王二"那么结果呢?

	sqlite3_stmt *stmt;
	sprintf(sql,"%s","select count(*) from fuck where id = 200;");
	rc = sqlite3_prepare(db,strlen(sql),&stmt,/*&tail*/0);
	if (rc !=SQLITE_OK)
	{
		return 0;
	}
	rc = sqlite3_step(stmt);

	iCount = sqlite3_column_int(stmt,0);

	sqlite3_finalize(stmt);

	cout << "daxiao " << iCount << endl;
只要判断返回值就行了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读