sqlite学习笔记(1)环境搭建

 

一、       命令运行平台

学习一样新的先要把环境平台搭建起来,然后自己多实践才能领悟的更快一点。初学时可以参考《sqlite3权威指南》。

首先去官网下载sqlite-tools-win32-x86-3190300.zipsqlite-dll-win64-x64-3200100.zip(注意我的是64位的,如果是32位的下载x86版)

然后在d盘创建一个文件夹D:\sqlite3,把 sqlite3.defsqlite3.dllsqlite3.exe三个文件放进去。打开cmd,先进入D盘,再cd进入sqlite3目录,再运行sqlite3.exe,敲命令时只需敲前几个字母,再按tab键就会自动补齐。如下图创建成功。

clip_image002[4]

然后创建数据库,出错

clip_image004[4]

这是因为之前运行了sqlite3.exe,现在表示数据库状态,怎么能在数据库里创建数据库呢,按ctrl+c退回原目录,再创建数据库就可以了,这时还看不到创建的db文件,一定要先创建一张表之后,才能在目录下看到文件。

   输入sqlite3.exe test.db

 create table test (id integer primary key, value text);

clip_image006[4]

这里要注意一点,命令是没“;”的,sql语句是有“;”的

下面是基本命令介绍:

.dump:这个就是输出你之前对数据库的各种操作命令

.output stdout:输出到屏幕上

.output file.sql:输出到file.sql文件

.read file.sql:把文件里的命令导入到当前数据库并执行

如果命令符是在安装目录,可以这样D:\sqlite3>sqlite3.exe test.db < file.sql,这样就把file.sql导入到test.db里。

二、       visul stdio 2010平台

这个主要参考http://blog.csdn.net/hyxiaohaiyang/article/details/7382551

   在官网下载sqlite-amalgamation-3180000.zip,里面有sqlite3.h文件,首先把从VS2010的安装目录下Microsoft Visual Studio 10.0\VC\bin找到lib.exelink.exe,从VS2010的安装目录下Microsoft Visual Studio 10.0\Common7\IDE找到mspdb100.dll。将lib.exe link.exe mspdb100.dll放到上文所说的D:\sqlite3文件夹里,在D:\sqlite3目录下运行lib /def:sqlite3.def,将会生成sqlite3.lib文件。

clip_image008[4]

然后在vs里新建win32控制台应用工程,选空项目,然后把sqlite3.hsqlite3.lib复制到源码目录,然后添加一个cpp文件,并把输入以下测试代码,现在先不管代码的意思

#include <stdio.h>
#include "sqlite3.h"

//查询的回调函数声明
int select_callback(void * data, int col_count, char ** col_values,
		char ** col_Name);

int main(int argc, char * argv[])
{
	const char * sSQL1 =
			"create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
	char * pErrMsg = 0;
	int result = 0;
	// 连接数据库
	sqlite3 * db = 0;
	int ret = sqlite3_open("./test.db", &db);
	if (ret != SQLITE_OK)
	{
		fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));
		return (1);
	}
	printf("数据库连接成功!\n");

	// 执行建表SQL
	sqlite3_exec(db, sSQL1, 0, 0, &pErrMsg);
	if (ret != SQLITE_OK)
	{
		fprintf(stderr, "SQL error: %s\n", pErrMsg);
		sqlite3_free(pErrMsg);
	}

	// 执行插入记录SQL
	result = sqlite3_exec(db, "insert into users values('张三',20,'2011-7-23');",
			0, 0, &pErrMsg);
	if (result == SQLITE_OK)
	{
		printf("插入数据成功\n");
	}
	result = sqlite3_exec(db, "insert into users values('李四',20,'2012-9-20');",
			0, 0, &pErrMsg);
	if (result == SQLITE_OK)
	{
		printf("插入数据成功\n");
	}

	// 查询数据表
	printf("查询数据库内容\n");
	sqlite3_exec(db, "select * from users;", select_callback, 0, &pErrMsg);

	// 关闭数据库
	sqlite3_close(db);
	db = 0;
	printf("数据库关闭成功!\n");

	return 0;
}

int select_callback(void * data, int col_count, char ** col_values,
		char ** col_Name)
{
	// 每条记录回调一次该函数,有多少条就回调多少次
	int i;
	for (i = 0; i < col_count; i++)
	{
		printf("%s = %s\n", col_Name[i],
				col_values[i] == 0 ? "NULL" : col_values[i]);
	}

	return 0;
}


然后必须把sqlite.lib添加到工程里,lib有两种,静态的不需要dll,动态的需要链接dll,这里是动态的lib

clip_image010[4]

编译整个工程,出现LINK:fatal error LNK1123:转换到 COFF期间失败:文件无效或损坏,出现这个问题参考http://blog.csdn.net/kevin_mqj/article/details/22981873项目——项目属性——配置属性——连接器——清单文件——嵌入清单改为就可以了。

编译通过后生成exe文件,在debug文件夹里(注意有2debug文件夹,exe文件在外层那个),然后把sqlite.dll放到这个目录下面。运行后又出现“应用程序无法正常启动0xc000007b的错误”,网上搜了一下,主要问题大概是于32位的程序调用了64位的dll或者反过来,由于我的dll64位的,那么说明应用程序是32位,可能需要对vs的环境进行设置。另外一种方法我直接重新下了一个32位的dll替换掉64位就可以了。

          clip_image012[4]

三、       eclipse cdt gcc平台

使用eclipse之前首先要安装jdk,这里jdk要和eclipse的版本对应,然后再安装cdt插件,不同版本的cdt对应着不同的eclipse版本,可以在官网查看对应版本

http://www.eclipse.org/cdt/downloads.php

也可以直接下载带cdteclipse,这样就不用安装插件了

http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/oxygen1a

我使用的版本是eclipse 4.3 cdt8.3 jdk1.6,先安装jdk,再安装插件,然后要安装gcc编译器,一般网上讲的都是mingw,但是这个似乎要在线安装比较麻烦,所以我选择TDM-GCC,软件很小,一键安装就可以,使用都和mingw差不多。

然后把jdk的环境变量设一下就可以了,这个网上讲的很多了,就不说了,TDM-GCC安装后,它的环境变量会自动添加的。这里要注意的是如果想自己使用make命令的话,要把安装目录TDM-GCC-32\bin下的mingw32-make.exe的改为make.exe。如果用eclipse的话就不要管了。

接下来新建项目,如图所示

clip_image014[4]

   然后添加main.c文件,代码和上面的一样,再把sqlite.dllsqlite.h放到工程下,这里eclipse不用添加文件,因为他的工程目录和文件目录是保持同步的,拷到工程目录下就可以了。这里sqlite.dll要重新命名为libsqlite.dll(不改好像也可以),然后右键工程属性—c++构建库里面添加dll路径,路径添加时点+号里的工作空间,找到位置双击就可以了

clip_image016[4]

编译后在debug文件夹下生成sqlite_test2.exe,这时要把sqlite.dll文件拷到这个文件夹下才能运行,点绿色三角形的运行按钮后,运行成功。

clip_image018[4]

如果要debug,工程目录不能为中文,点击虫子按钮右边三角形下拉的调试配置选项

clip_image020[4]

把原来的gdb改为

clip_image022[4]

这样就可以单步调试了

clip_image024[4]

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值