流星街★童虎de博客

畅游.NET的世界

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

首先需要生成开发所需的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;
}


在编译时,在工程设置中把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;"

posted on 2006-03-09 15:40  流星街★童虎  阅读(1342)  评论(2)    收藏  举报