![]()
个人爱好sqlite,仅仅是因为他不用安装,向access一样,可以直接携带,至于它的优点,还没有去深入。。。
![]()
参看API说明: //http://www.sqlite.org/cintro.html
编译器:VC6.0
![]()
数据库:sqlite
![]()
头文件包:sqlite-amalgamation-3070601
![]()
使用时将sqlite3.h,sqlite3.c拷到目录下,或者直接添加include路径
#include <stdio.h>
![]()
#include <stdlib.h>
![]()
#include "sqlite3.h"
![]()
//回调函数print的编写;
![]()
//其中data为sqlite3_exec中的第四个参数
![]()
//第二个参数是栏的数目
![]()
//第三个是栏的名字
![]()
//第四个为查询得到的值得
![]()
//这两个函数输出所有查询到的结果
![]()
//该函数会被插入到每一行结果中
![]()
int print( void *data, int n_columns, char **column_values, char **column_names)
![]()
{
![]()
int i;
![]()
for(i = 0; i < n_columns; ++i)
![]()
printf( "列名:%s\n列值:%s\n", column_names[i], column_values[i]);
![]()
return 0;
![]()
}
![]()
char *datafile = "test.s3db";
![]()
char *createsql = "CREATE TABLE [test] ([id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, [name] TEXT NOT NULL, [sex] TEXT NOT NULL);";
![]()
char *selectsql = "select * from test";
![]()
char *insertsql = "insert into test(name, sex) values(\'hahahah\', \'man\');";
![]()
char *deletesql = "delete from test where id < 6;";
![]()
int main( void)
![]()
{
![]()
sqlite3 *db=NULL;
![]()
char *errMsg;
![]()
int rc;
![]()
//打开一个数据库,如果改数据库不存在,则创建一个名字为datafile的数据库文件
![]()
if((rc = sqlite3_open(datafile, &db)) != SQLITE_OK)
![]()
{
![]()
fprintf(stderr, "打开数据库失败: %s\n", sqlite3_errmsg(db));
![]()
return 0;
![]()
}
![]()
else
![]()
{
![]()
if((rc = sqlite3_exec(db, createsql, 0, 0, &errMsg)) != SQLITE_OK)
![]()
{
![]()
printf( "创建数据库失败:%s\n", errMsg);
![]()
return 0;
![]()
}
![]()
else
![]()
{
![]()
printf( "创建表test成功\n");
![]()
}
![]()
}
![]()
if((rc = sqlite3_exec(db, selectsql, print, 0, &errMsg)) != SQLITE_OK) //查询
![]()
{
![]()
printf( "查询错误:%s\n", errMsg);
![]()
}
![]()
printf( "插入操作=========================================\n");
![]()
if((rc = sqlite3_exec(db, insertsql, 0, 0, &errMsg)) != SQLITE_OK) //删除
![]()
{
![]()
printf( "插入错误:%s\n", errMsg);
![]()
}
![]()
if((rc = sqlite3_exec(db, selectsql, print, 0, &errMsg)) != SQLITE_OK) //查询
![]()
{
![]()
printf( "查询错误:%s\n", errMsg);
![]()
}
![]()
printf( "删除操作=========================================\n");
![]()
if((rc = sqlite3_exec(db, deletesql, 0, 0, &errMsg)) != SQLITE_OK) //删除
![]()
{
![]()
printf( "删除错误:%s\n", errMsg);
![]()
}
![]()
if((rc = sqlite3_exec(db, selectsql, print, 0, &errMsg)) != SQLITE_OK) //查询
![]()
{
![]()
printf( "查询错误:%s\n", errMsg);
![]()
}
![]()
printf((sqlite3_close(db) == SQLITE_OK)? "close sqlite success\n": "close sqlite failed\n"); //关闭数据库
![]()
return 0;
![]()
}