首先需要生成开发所需的lib文件。当然了,如果不怕麻烦,直接链接sqlite3.dll也没有问题。
打开cmd,进入sqlite3.dll和sqlite3.def所在目录。输入LIB /MACHINE:IX86 /DEF:sqlite.def。其中lib是VC6自带的工具之一,位于VC98/bin目录下,使用时请设置环境变量或者用绝对地址。
这样,在相同目录下会生成sqlite3.lib文件。另外从sqlite3的下载包中找到sqlite3.h文件。开发的准备工作就完成了。
VC中新建一个工程并新建一个新代码文件 AccessDemo.c
#include <stdio.h>
#include "sqlite3.h"
//agrc: 表中列的数量
//argv: 保存列中数据的数组
//azColName: 列的名字
//请见: src/legacy.c 中sqlite3_exec()的实现
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv)
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if( argc!=3 )
{
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
exit(1);
}
rc = sqlite3_open(argv[1], &db); //打开指定的数据库文件
if( rc )
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
//执行指定的SQL语句,同时sqlite3_exec会为查询结果的每一条数据都调用callback函数。参见SQLite3的文档
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
}
sqlite3_close(db); //关闭数据库
return 0;
}
#include "sqlite3.h"
//agrc: 表中列的数量
//argv: 保存列中数据的数组
//azColName: 列的名字
//请见: src/legacy.c 中sqlite3_exec()的实现
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv)
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if( argc!=3 )
{
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
exit(1);
}
rc = sqlite3_open(argv[1], &db); //打开指定的数据库文件
if( rc )
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
//执行指定的SQL语句,同时sqlite3_exec会为查询结果的每一条数据都调用callback函数。参见SQLite3的文档
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
}
sqlite3_close(db); //关闭数据库
return 0;
}
在编译时,在工程设置中把SQLite3.lib加入到link选项中。然后把sqlite3.h sqlite3.lib sqlite3.dll放到工程目录中。(也可以把sqlite3.h和sqlite3.lib所在目录加入到VC的include和lib的目录中。)
编译后生成accessdemo.exe,然后可以在cmd下执行它。
accessdemo test.db3 "select * from test;"

浙公网安备 33010602011771号