数据库sqlite与C语言

个人爱好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;
}

你可能感兴趣的:(c,数据库,sqlite,职场,休闲)