KIDx的sqlite3笔记
到http://www.sqlite.org/download.html下载:
解压后得到sqlite3.h,得到的其他文件这里不会用到
下载第二个,解压后得到sqlite3.dll和sqlite3.def
下面要做的是:利用sqlite3.def生成sqlite3.lib
①把sqlite3.def放到VC6的LIB.exe所在目录,例如我的VC是装在G盘的:G:\Microsoft Visual Studio\VC98\Bin
②开始菜单->运行->cmd,打开cmd命令行
(以下括号里的黑色字体是输入的内容)
③输入(g:)然后回车切换到g盘目录(因为我VC装在g盘)
④输入(cd \Microsoft Visual Studio\VC98\Bin)然后回车切换到LIB.exe所在目录
⑤输入命令(LIB /MACHINE:IX86 /DEF:sqlite3.def)然后回车,在同一目录下就会生成了sqlite3.lib文件了,当然还生成了sqlite3.exp,不过这里没用到
(如果提示丢失mspd60.dll,请到\Microsoft Visual Studio\Common\MSDev98\Bin目录找到mspd60.dll,然后再把它复制到\Microsoft Visual Studio\VC98\Bin目录)
参考截图:
⑥用VC6新建一个空的控制台工程,把(sqlite3.h、sqlite3.dll、sqlite3.lib)放到工程文件夹里,
选择菜单栏的工程-->设置:在连接的(对象/库模块)后面加上sqlite3.lib,然后点确定
⑦在工程里新建一个cpp文件,运行以下代码:
#include <iostream> #include "sqlite3.h" using namespace std; int sqlite3_exec_callback (void *data, int nColumn, char **colValues, char **colNames) { for (int i = 0; i < nColumn; i++) printf ("%s\t", colValues[i]); printf ("\n"); return 0; } int main(int argc, char** argv) { sqlite3 *conn = NULL; char *err_msg = NULL; char sql[200] = ""; //打开数据库,创建连接 if (sqlite3_open("data.db", &conn) != SQLITE_OK) puts ("无法打开!"); //执行SQL,创建表VC6_test sprintf (sql, "CREATE TABLE VC6_test \ (id int, name varchar(20), age int)"); if (sqlite3_exec (conn, sql, NULL, NULL, &err_msg) != SQLITE_OK) { printf ("操作失败,错误代码:%s\n", err_msg); exit(-1); } //添加10条记录 for (int i = 0; i < 10; i++) { //执行SQL sprintf (sql, "INSERT INTO VC6_test \ (id, name, age) VALUES \ (%d, '%s', %d)", i, "testPeople", i); if (sqlite3_exec (conn, sql, NULL, NULL, &err_msg) != SQLITE_OK) { printf ("操作失败,错误代码:%s\n", err_msg); exit(-1); } } //查询 sprintf (sql, "SELECT * FROM VC6_test"); sqlite3_exec (conn, sql, &sqlite3_exec_callback, 0, &err_msg); //关闭连接 if (sqlite3_close(conn) != SQLITE_OK) { printf ("无法关闭,错误代码:%s\n", sqlite3_errmsg(conn)); exit(-1); } puts ("操作成功"); return 0; }
运行结果: