老师最近给的上机题目有点变态,特别是写到最后,是需要写学生管理系统。如果C语言结合文件来操作的话,估计会比较麻烦(对文件里字符串的增删改查我都没有什么好点的算法)。那就用数据库吧,我很自然的想到。

前几天研究了Mysql与VC的交互,利用微软ODBC里面的一些API可以对数据库进行访问。不过用Mysql写这种小软件感觉还是太大,而且如果一台电脑既没联网也没安装MYSQL就不能使用我的程序了,所以我想找一款能嵌入程序里的数据库。

sqlite就是一个嵌入式的轻型数据库,感觉与这种作业类型的题目真是天作之合。到时候提交给老师就是一个exe文件和一个db文件,老师就可以直接看到我的程序和运行结果~(笑)

废话不多说(感觉自己太罗嗦了),我写这篇文章目的不是为了介绍C语言里sqlite的API(因为我自己现在暂时也没一一看过),而是先说说如何让VC和sqlite库连接起来(不连接怎么使用库里的函数)。

官方提供了源文件的下载,我们就把源文件下载下来:sqlite-amalgamation-3071502.zip,下下来后解压发现里面有四个文件,"sqlite3.h"、"sqlite3.c"、"sqlite3ext.h"、"shell.c"。

好,我们现在开始制作一个叫静态的lib文件,做好了告诉你有什么用:


1.用VC(我用是VS2010)创建一个dll工程(我的就叫dll),即点击 文件 - 新建 - 项目 - win32项目 - dll(D) - 空项目

2.将"sqlite3.h"、"sqlite3.c"、"sqlite3ext.h"拷贝到工程目录下,再一一添加到工程里,即点击 工程 - 添加 - 现有项

3.以Release编译sqlite3.c,生成了dll文件,不过我们不用它。找到工程文件夹\dll\Release\sqlite3.obj,我们需要它!

4.来到VS2010的安装目录下的VC\BIN目录(我的是D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin),把这个obj文件拷贝进去。再来到\Microsoft Visual Studio 10.0\Common7\IDE文件夹,找到其中的mspdb100.dll,mspdbcore.dll,mspdbsrv.exe,msobj100.dll文件,也拷贝到bin目录下。

5.在bin目录下运行cmd,执行命令lib sqlite3.obj,完成obj的编译,生成一个2M多的sqlite3.lib文件,这就是我们的静态lib文件!!

6.最后删除复制到bin文件夹下的dll文件(重要),我们只要这个sqlite3.lib.


拿到了lib文件就好用了,以后写连接数据库的程序,只用把这个lib文件复制到工程目录下,并添加 - 新建项,选择这个lib文件。最后在代码里#include "sqlite3.h"(sqlite3.h在已经sqlite3.lib里,不用再把sqlite3.h拷贝到工程文件下)。

现在就能用sqlite里面的API了~~

到时候交作业直接把编译生成的exe文件和你的数据库文件xxx.db放在一起,其他人就能直接点击exe文件运行了。

VC++下使用SQLite数据库的更多相关文章

  1. 在4.0框架下使用Sqlite数据库

    在4.0框架下使用Sqlite数据库出现"混合模式程序集是针对"v2.0.50727"版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集. ...

  2. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  3. Android 使用存放在存assets文件夹下的SQLite数据库

    因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机 ...

  4. windows 下创建 sqlite 数据库

    说明:windows 下执行创建 sqlite 数据库命令后数据库文件不会马上生成,需要创建表以后才会生成. 1.将 sqlite3.exe 文件放在任何位置(如放在 d:\tools )2.在 CM ...

  5. 42、使用存放在存assets文件夹下的SQLite数据库

    因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机 ...

  6. Android下利用SQLite数据库实现增删改查

    1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法 ...

  7. Android下的SQLite数据库的相关操作及AndroidTestCase测试

    一:创建数据库 package com.itcode.mysqlite; import android.content.Context; import android.database.sqlite. ...

  8. 在Android中afinal框架下实现sqlite数据库版本升级的办法

    上一篇文章采用的是SQLiteOpenHelper中的onUpgrade方法实现数据库的升级. 首先获取Context: private Context mContext=this; 然后实现Fina ...

  9. Android下用Sqlite数据库存储数据

    第一步:  写个类 ,继承 SQLiteOpenHelper public class MyDatabaseOpenHelper extends SQLiteOpenHelper { } 第二步:   ...

随机推荐

  1. nodejs安装过程及视频地址

    说实话在安装的过程中遇到了很多问题,包括npm install connect出错,主要是我之前安装了0.10版本之后安装4.X版本造成的,后面卸载没有卸载完全造成的,后面也就好了,网上说了很多重新设 ...

  2. angular json转义html

    第一步json输出的内容反编码 function htmldecode(s){ var div = document.createElement('div'); div.innerHTML = s; ...

  3. Python入门-----介绍

    摘要:Python语言的特点 ----->优雅.明确.简单 一.Python适合的领域 web网站和各种网络服务 系统工具和脚本 作为“胶水”语言,把其他语言开发的模块包装起来方便使用 二.Py ...

  4. 深入浅出scanf、getcha、gets、cin函数

    转:问题描述一:(分析scanf()和getchar()读取字符) scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的.但是有时候却就是因为使用这些 ...

  5. 通过JCONSOLE监控TOMCAT的JVM使用情况

    这个也是要学入一下,JVMr 虚拟机原理不可少. 参考配置URL“: http://blog.163.com/kangle0925@126/blog/static/277581982011527723 ...

  6. 吃午饭前,按书上的代码写会儿--Hunt the Wumpus第一个版本

    有空就要慢慢练起~~~~脑袋动起来是很快乐的事儿....:) <易学PYTHON>演练一遍. from random import choice cave_numbers = range( ...

  7. [转]RegOpenKeyEx函数失败的问题

    在使用这个函数RegOpenKeyEx的时候,老是执行不成功,函数本身返回2,GetLastError返回0.在CSDN上查阅资料说是返回2的原因是注册表中对应路径不存在,可是我电脑中注册表那个键值明 ...

  8. [VBA]发布一个计算桩号之差的Excel自定义函数(VBA)

    这是一个可以计算桩号之差(也就是得到长度)的Excel(或WPS)扩展函数,可以减少工程师在统计工程量时的工作量. 该函数具有一定的通用性.可以在MS Office和金山WPS上使用. 文末会给出使用 ...

  9. bzoj1047-理想的正方形(二维单调队列)

    题意: 给一个矩阵,给出行列和每个数,再给出一个N,求出所有N*N的子矩阵中最大值最小值之差的最小值解析: 暴力枚举肯定不行,这题可以用二维单调队列做,把同一行的连续N个点缩成一个点保存最大最小值预处 ...

  10. pyqt学习之列表管理器(网友提供)

    # -*- coding: utf-8 -*- __author__ = 'Administrator' import sys from PyQt4.QtCore import * from PyQt ...