SQLite C语言调用

//事务
#include <stdio.h>
#include "sqlite3.h"
int main(void)
{
    sqlite3 *db;
    //打开
    int rc = sqlite3_open("sqlite.db", &db);
    if(rc != SQLITE_OK)
    {
    	//错误消息
        printf( "打开失败:%s\n", sqlite3_errmsg(db));
        return -1;
    }
    
    char *sql1 = "create table if not exists stu(id integer primary key default 1, name varchar(20), age integer);";
    char *sql2 = "insert into stu(id,name,age) values(5,'Qode',17)";
    char *errmsg;
    
    //开始
    rc = sqlite3_exec(db, "begin transaction", NULL, NULL, &errmsg);
    rc = sqlite3_exec(db, sql1, NULL, NULL, &errmsg);
    rc = sqlite3_exec(db, sql2, NULL, NULL, &errmsg);
    if(rc != SQLITE_OK)
    {
        //错误信息
        fprintf(stderr, "错误%s\n", sqlite3_errmsg(db));
        fprintf(stderr, "错误%s\n", errmsg);
        //失败回滚
        sqlite3_exec(db, "rollback transaction", NULL, NULL, &errmsg);
        getchar();
        return -1;
    }
    //完毕
    sqlite3_exec(db, "commit transaction", NULL, NULL, &errmsg);
    //关闭
    sqlite3_close(db);
    getchar();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_35338800/article/details/83005181
今日推荐