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

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

发布时间:2020-12-12 20:30:02 所属栏目:百科 来源:网络整理
导读:下载地址:http://www.sqlite.org/download.html 在该页面上 下载Source Code中的sqlite-amalgamation-3071300.zip,该包有含有两个头文件,两个实现文件。 下载Precompiled Binaries For Windows中的sqlite-dll-win32-x86-3071300.zip,该包中含有一个def文
下载地址: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,"数据库打开失败,请检查%sn",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   addressn");
		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("请输入要删除的idn");
		scanf("%d",&i);
		sprintf(strSQL,"delete from test where id=%d;",i);
		sqlite3_exec(db,&zErrMsg);
		break;
	case 3:
		sqlite3_exec(db,&zErrMsg);
		printf("请输入要修改的idn");
		scanf("%d",&i);
		printf("请输入新的name   addressn");
		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;
	}
}

(编辑:李大同)

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

    推荐文章
      热点阅读