参考链接: 使用Python和SQLite的SQL 2
如何利用Python和VC6.0对SQLite数据库进行操作
(如需交流,请关注公众号:神马观止)
这段时间由于工作上的需要,简单学习了SQLite数据库的操作,为了方便地将采集的数据写入到SQLite数据库中,我采用Python。但是由于后期需要用C来实现数据处理算法,因此也需要完成利用VC6.0来对SQLite数据进行操作。为了对这段时间学习进行总结,也为了日后用到相关知识可以直接参考积累的成果,特此将这些工作记录于这篇博客。当然,由于牵涉到数据保密问题,以及算法的不宜公开,这里只是介绍Python和VC6.0对SQLite的操作代码。
第一步就是安装SQLite,这里我选用的数据库是Navicat for SQLite,界面简洁而操作简单,最高的处理数据量可以达到2T。另外注意为了在接下来的VC6.0中导入静态链接库,需要有以下几个文件:
(1)sqlite3.dll和sqlite3.def
(2)sqlite3.lib和sqlite3.h
这里,由sqlite3.def产生,打开DOS命令行界面,通过cd以及盘符切换指令将目录转到SQLite所在处,运行命令:LIB /DEF : sqlite3.def。将会出现如下所示的常见库产生输出:
C:sqlite>lib /DEF : sqlite3.def
Microsoft(R) Library Manager Version 10.00.30319.01
……(详细请见《SQLite权威指南》(第二版))
sqlite3.h可以直接从网上下载一个,如果需要可以联系我。这样第一步的准备工作就完成了。
第二步是安装Python和VC6.0,这个我就不再啰嗦了。这里我用的是Python 2.7。数据文件为data.txt。
1.Navicat for SQLite操作界面
Navicat for SQLite是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设计的。对数据库服务器的新手来说学习起来相当容易,有极完备的图形用户界面 (GUI),可以简便地以安全且简单的方法创建、组织、访问和共享信息。
在之后我们得到data.db文件时,通过建立连接,即可利用SQL语句对数据库进行查询等操作了。需要导入4列数据。如图所示(很抱歉我不能上传完整数据视图):
2.Python对SQLite数据库的操作
接下来我们打开Python 2.7的IDLE(Python 2.7 GUI),开始编写Python操作SQLite数据库的代码,打开之后如下图所示:
File→New Window创建新的.py文件,编写代码如下:
#导入Python SQLite数据库模块
import sqlite3
#创建/打开数据库
cx=sqlite3.connect("E:/data.db")
#使用游标查询数据库
cu=cx.cursor()
#建表
cu.execute("create table me (id integer primary key,ivalues1 string,ivalues2 string,ivalues3 string,ivalues4 string)")
txtRead_0=open("E:/0.txt",'r');
file_0=txtRead_0.readlines();
icount=1
for line in file_0:
ivalues1,ivalues2,ivalues3,ivalues4=line.split('t')
cx.execute("insert into me values('%d','%s','%s','%s','%s')"%(icount,ivalues1,ivalues2,ivalues3,ivalues4))
cx.commit()
icount =1
txtRead_0.close
这样就完成了将data.txt中的数据写入到数据库文件data.db中,通过Navicat for SQLite就可以进行查询等操作,也可以将感兴趣的组导出。
3.VC6.0对SQLite数据库的操作
相对于Python对SQLite的操作来说,用VC6.0 来操作数据库稍微显得麻烦一点,不过考虑到日后代码的移植性,即使麻烦一点还是值得的。
通过VC6.0界面中的Project→Settings打开Project Settings界面,如下图所示:
在Object/library modules:中添加之前我们得到的sqlite3.lib,这样就可以构建我们自己的程序了。同时记得将sqlite3.lib和sqlite3.dll拷贝到当前工程目录中。然后按照我们最熟悉的新建工程,Win32控制台程序,这里一定要将之前下载的sqlite3.h添加到工程中。接着我们编写代码如下:
#include <stdio.h>
#include "sqlite3.h"
int main(void)
{
sqlite3 *db=NULL;
char *MyErrMsg=0;
int icount;
//打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
icount=sqlite3_open("data.db",&db);
if (icount)
{
fprintf(stderr,"Cann't open database:%sn",sqlite3_errmsg(db));
sqlite3_close(db);
}
else
printf("Open data.db successfulliy!n");
sqlite3_close(db);
return 0;
}
这里我只是简单介绍一下利用VC6.0和Python对SQLite的简单操作,至于插入、更新和删除等操作,以及根据自己的应用场合进行编程,这里不再赘述。有兴趣的朋友可以联系我一起交流,谢谢!