Sqlite入门与C/C++的应用

前端之家收集整理的这篇文章主要介绍了Sqlite入门与C/C++的应用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下载地址:http://www.sqlite.org/download.html
在该页面
下载Source Code中的sqlite-amalgamation-3071300.zip,该包有含有两个头文件,两个实现文件

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


由于官网上下载的东西没有lib,需要自己编译,这里说一下编译的过程。
在vs2010中,新建一个项目,Win32控制台,选择空白dll项目,然后,把下载的所有文件,解压缩
放入到这个项目中,在项目---属性---常规中配置类型选择为静态库.lib,点生成就可以了。

下面这个程序是我写的一个例子,具有基本功能,但可能方法不是很好。

#include "sqlite3.h"
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib,"sqllib.lib")


int select_callback(void* data,int col_count,char **col_values,char ** col_Name);
void DoSelect(int id);
sqlite3 *db=NULL;
char *zErrMsg=NULL;

int select_callback(void* data,char ** col_Name)
{
	for(int i=0; i < col_count; i++)
		printf("%s = %s;",col_Name[i],col_values[i] == 0 ? "NULL" : col_values[i]);
	printf("\n");
	return 0;
}

int main()
{
	int rc;
	int select;
	rc=sqlite3_open("Test.s3db",&db);
	if(rc)
	{
		fprintf(stderr,"数据库打开失败,请检查%s\n",sqlite3_errmsg(db)); 
	}else 
	{
		do
		{
			printf("********数据库已连接******** \n");
			printf("请选择相应操作:\n");
			printf("1、增加数据\n");
			printf("2、删除单条数据\n");
			printf("3、修改数据\n");
			printf("4、删除全部数据\n");
			printf("5、查看所有数据\n");
			printf("6、退出程序\n");
			scanf("%d",&select);
			DoSelect(select);
		}while(select!=6);
	}
	return 0;
}

void DoSelect(int id)
{
	char strsql[100];
	char name[50],address[100];
	int i;
	switch(id)
	{
	case 1:
		printf("请输入name   address\n");
		scanf("%s %s",name,address);
		sqlite3_exec(db,"begin;",&zErrMsg);
		sprintf(strsql,"insert into test(name,address) values('%s','%s');",strsql,NULL,&zErrMsg);
		sqlite3_exec(db,"commit;",&zErrMsg);
		break;
	case 2:
		sqlite3_exec(db,"select * from test;",select_callback,&zErrMsg);
		printf("请输入要删除的id\n");
		scanf("%d",&i);
		sprintf(strsql,"delete from test where id=%d;",i);
		sqlite3_exec(db,&zErrMsg);
		break;
	case 3:
		sqlite3_exec(db,&zErrMsg);
		printf("请输入要修改的id\n");
		scanf("%d",&i);
		printf("请输入新的name   address\n");
		scanf("%s %s",address);
		sprintf(strsql,"update test set name='%s',address='%s' where id=%d;",address,&zErrMsg);
		break;
	case 4:
		sqlite3_exec(db,"delete from test;",&zErrMsg);
		break;
	case 5:
		sqlite3_exec(db,&zErrMsg);
		break;
	case 6:
		sqlite3_close(db);
		break;
	}
}

猜你在找的Sqlite相关文章