记录研究SQLite过程中遇到的问题!

一、在编译生成Lib文件这个阶段,如果sqlitedll-3_3_7.zip没有SQLite3.lib文件, 则按照“启动一个命令行,进入VC的安装目录,如C:/Microsoft Visual Studio/VC98/Bin在这个目录下面有一个LIB.exe文件,我们就是利用本文件生成所需要的SQLite3.lib文件,将在SQLite官方下载的sqlite-source-3_3_7.zip包中的SQLite3.def文件放到相同目录,或者绝对路径,然后在命令行输入如下命令: D:/Microsoft Visual Studio/VC98/Bin>LIB /MACHINE:IX86 /DEF:sqlite.def 如果命令成功执行的话我们可以看到LIB.exe文件已经帮我们生成好了SQLite3.lib文件。”此步骤操作。

接下来用VC建立工程,添加一个文件,以下是我自己写的一个文件

#include <stdio.h>
#include "stdlib.h"
#include "sqlite3.h"

int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;

int nrow=0,ncolum=0;
char **azResult;
char *sql="SELECT * FROM test";
int count=0;

// char *crtsql="CREATE TABLE[test](no INTEGER PRIMARY KEY AUTOINCREMENT,train VARCHAR2(10))";

char inssql2[1024]="INSERT INTO test(train) VALUES(6)";
char inssql[1024];
//*********************open database***************************

rc = sqlite3_open("caen.db3",&db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if( rc )
{
printf( "Can't open database: %s/n",sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("open db successfully!/n");

//***********************Create Table*************************
/*
rc = sqlite3_exec(db,crtsql,&zErrMsg);
if(0==rc)
{
printf( "Create table success/n" );
}*/

//***********************Insert Data****************************
sprintf(inssql,"INSERT INTO test(train) VALUES(%d)",count);//某一列插入变量要用sprintf
sqlite3_exec(db,inssql,&zErrMsg);
sqlite3_exec(db,inssql2,&zErrMsg);
//***********************Query Data****************************
sqlite3_get_table(db,sql,&azResult,&nrow,&ncolum,&zErrMsg);
printf("row:%d column:%d /n",nrow,ncolum);
for(count;count<ncolum*(nrow+1);count++)
{
printf("%s ",azResult[count]);
if((count+1)%ncolum==0)printf("/n");
else printf(" ||");

}
//*************************Close Database*************************
sqlite3_free_table(azResult);
sqlite3_close(db); //关闭数据库
return 0;
}

编译时要改动下VC6.0的配置:

1、C/C++->category->Precompiled Header->Not using compiled Headers (否则会报错 头文件的问题)

2、project->setting->Link->Object/Library modules中添加sqlite

3、lib 或者在程序中添加#pragma comment(lib,"sqlite3.lib")

注意:lib文件需要放在工程目录下,否则就算执行完以上操作也会报错!

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能