现在的位置: 首页 > 综合 > 正文

sqlite3 试用指南

2013年05月31日 ⁄ 综合 ⁄ 共 1818字 ⁄ 字号 评论关闭

想试用SQLite的相关功能,于是就测试了下。

我是在CodeBlocks下配置VS2010而做的,但是最新CodeBlocks的VS2010配置不是对,链接说找不到kernel32.lib,于是重新修复安装VS2010(折腾人的大工程),后来参考了CodeBlocks在win7+Vs2010环境下的配置 终于搞定,其实是kernel32.lib移到了“Microsoft SDKs”中了。

到SQLite主要上下载,参考在VS2010下由DEF和DLL文件生成SQLite3.lib ,生成lib文件(就是命令LIB /DEF:sqlite3.def /machine:IX86的使用),新建工程,配置lib的路径和引用sqlite3库即可。

使用数据库的语句,保存为film.sql 文件。

create table film(title, length, year, starring);
create index film_title_index on film(title);
insert into film values ('Silence of the Lambs', 118, 1991, 'Jodie Foster');
insert into film values ('Contact', 153, 1997, 'Jodie Foster');
insert into film values ('Crouching Tiger, Hidden Dragon', 120, 2000, 'Yun-Fat Chow');
insert into film values ('Hours', 114, 2002, 'Nicole Kidman');

执行sqlite3.exe test.db < film.sql ,会在目录下生成test.db

可以使用sqlite3_analyzer.exe test.db 查看test.db的数据信息。

测试代码参考 SQLite3 C/C++接口使用演示

 

View Code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory.h>
#include "sqlite/sqlite3.h"
int print_result_cb(void* data, int n_columns,
char** column_values,
char** column_names);
void print_row(int n_values, char** values);
int main()
{
sqlite3 * pdb;
int ret;
char *errmsg;
char selstr[100];
if((ret = sqlite3_open("test.db", &pdb))!=SQLITE_OK)
{
printf("Error while open database \n");
sqlite3_close(pdb);
return -1;
}
//char selstr[100] ="select * from film;";

strcpy(selstr,"select * from film;");
if((ret = sqlite3_exec(pdb,selstr,print_result_cb,0,&errmsg))!=SQLITE_OK)
{
printf("%s\n",errmsg);
sqlite3_free(errmsg);
}
sqlite3_close(pdb);
printf("Hello world!\n");
return 0;
}
int print_result_cb(void* data,
int n_columns,
char** column_values,
char** column_names)
{
static int column_names_printed = 0;
if (!column_names_printed)
{
print_row(n_columns, column_names);
column_names_printed = 1;
}
print_row(n_columns, column_values);
return 0;
}
void print_row(int n_values, char** values)
{
int i;
for (i = 0; i < n_values; ++i)
{
if (i > 0)
{
printf("\t");
}
printf("%s", values[i]);

}
printf("\n");
}

完成,这只是遍历查询。保证了配置的正确性。

抱歉!评论已关闭.