sqlite3_open

  • sqlite3_open函数原型:
  • int sqlite3_open(
    const char *filename, /* Database filename (UTF-8) */
    sqlite3 **ppDb /* OUT: SQLite db handle */
    );
  • sqlite3_open用于连接打开一个数据库,如果这个数据库不存在,则会在指定的路径下创建一个数据库文件,并打开文件;
  • void main(void) {
    ...... sqlite3 *db;
    char *zErrMsg = ;
    int rc; rc = sqlite3_open("testDB1.db", &db);
    if(rc){
    fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
    exit();
    } else {
    fprintf(stderr, "Opened database successfully\n");
    }
    ......
    }

sqlite3_exec

  • sqlite3_exec函数原型:
  • int sqlite3_exec(
    sqlite3, /* An open database */
    const char *sql, /* SQL to be evaluated */
    int (*callback)(void*,int,char**,char**), /* Callback function */
    void *, /* 1st argument to callback */
    char **errmsg /* Error msg written here */
    );
  • sqlite3_exec用于执行一条sql语句,参数如下:
  • 参数1:打开数据库得到的指针;
  • 参数2:一条sql语句,是一个以“\0”结尾的字符串;
  • 参数3:用户提供的回调函数,如果不需要回调函数,可以填 NULL。比如做insert 操作,做delete操作,就没有必要使用回调。而当你做select 时,就要使用回调;
  • 参数4:回调函数需要传递的参数,如果不需要,可以填 NULL;
  • 参数5:错误信息
  • 不使用回调示例:
  • void main(void){
    ......
    sql = "INSERT INTO COMPANY VALUES (1, 'Paul', 32, 'California', 20000.00 ); "
    sqlite3_exec(db, sql, , , &zErrMsg); .....
    }
  • 回调示例:
  • static int callback(void *NotUsed, int argc, char **argv, char **azColName){
    int i;
    for(i=; i<argc; i++){
    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
    }
    printf("\n");
    return ;
    } void main(void){
    ...... /* Create SQL statement */
    sql = "SELECT * from COMPANY"; /* Execute SQL statement */
    rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
    if( rc != SQLITE_OK ){
    fprintf(stderr, "SQL error: %s\n", zErrMsg);
    sqlite3_free(zErrMsg);
    }else{
    fprintf(stdout, "Operation done successfully\n");
    } ......
    }

sqlite3_close

  • sqlite3_close函数原型:

  • int sqlite3_close(sqlite3*);  
  • sqlite3_close用于在操作完数据库之后,关闭数据库;

sqlite3入门之sqlite3_open,sqlite3_exec,slite3_close的更多相关文章

  1. 数据库(SQLITE3函数总结): sqlite3_open, sqlite3_exec, slite3_close,sqlite3_prepare_v2,sqlite3_column_text,

    Sqlite3 的确非常好用.小巧.速度快.近期研究它,有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记. 导入SQLLite library并引入头文件. libsqlite3.dyl ...

  2. sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_close

    打开数据库链接sqlite3_open用法 原型: int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sq ...

  3. sqlite3 入门

    SQLite3 C语言API入门下载SQLite3 我们下载sqlite源码包,只需要其中的sqlite3.c.sqlite.h即可.最简单的一个创建表操作#include <stdio.h&g ...

  4. python sqlite3 入门 (视频讲座)

    python sqlite3 入门 (视频讲座) an SQLite mini-series! - Simple Databases with Python 播放列表: YouTube https:/ ...

  5. Sqlite3入门简记

    一,安装Sqlite3 1.入门时看http://www.runoob.com/sqlite/sqlite-intro.html,说的简单,但是适合入门 2.在终端输入sqlite3,没有返回信息,表 ...

  6. sqlite3入门之sqlite3_get_table,sqlite3_free_table

    sqlite3_get_table sqlite3_get_table函数原型: int sqlite3_get_table( sqlite3 *db, /* An open database */ ...

  7. sqlite3入门之sqlite3_mprintf

    sqlite3_mprintf sqlite3_mprintf()函数原型: char *sqlite3_mprintf(const char*,...); sqlite3_mprintf()的作用是 ...

  8. [ios]sqlite轻量级数据库学习连接

    SQLLite (一)基本介绍 http://blog.csdn.net/lyrebing/article/details/8224431 SQLLite (二) :sqlite3_open, sql ...

  9. SQLite3简单入门及C++ API

    转载请注明出处:http://www.cnblogs.com/StartoverX/p/4660487.html 项目用到SQLite3,简单记录一下. MySQL不同,SQLite3的数据库基于文件 ...

随机推荐

  1. Laya的滚动容器

    想实现一个简单的滚动容器.例如水平排列10个图标,可以左右滑动查看的. Egret里有布局容器可以滚动 Laya看了教程和示例,没有找到一个滚动容器,只有一个list,需要设置item,显然不是我想要 ...

  2. 大名鼎鼎的UniDAC手工安装

    第一次开博,该写点什么.由于懒,很多事情,都不想动.不过,懒不能解决遗忘的毛病.还是动手,记录一下吧. 好了,言归主题. UniDAC 的手工安装. 现在Delphi,已经发展到了XE6,支持多种移动 ...

  3. [LeetCode] 137. Single Number II 单独数 II

    Given a non-empty array of integers, every element appears three times except for one, which appears ...

  4. Linq调试实时输出信息扩展方法(摘抄)

    原文在此 [译]如何在C#中调试LINQ查询 原linq语句: var res = employees .Where(e => e.Gender == "Male") .Ta ...

  5. (转)面试前必知Redis面试题—缓存雪崩+穿透+缓存与数据库双写一致问题

    背景:redis问题在面试过程中经常被问到,对于常见问题一定不能放过. 面试前必知Redis面试题—缓存雪崩+穿透+缓存与数据库双写一致问题 一.缓存雪崩 1.1什么是缓存雪崩? 如果缓存数据设置的过 ...

  6. OpenGL和EGL入门

    一.简介 EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口. 通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机 ...

  7. Zuul学习笔记

    问题: 解决:(域名映射+前缀+禁止原来访问)

  8. markdown ——flow流程图

    一个纯文本的语法怎么画图? 将流程图代码包含在```folw和`````之间即可 例子 st=>start: Start op=>operation: Your Operation sub ...

  9. Apache Kafka安全| Kafka的需求和组成部分

    1.目标 - 卡夫卡安全 今天,在这个Kafka教程中,我们将看到Apache Kafka Security 的概念  .Kafka Security教程包括我们需要安全性的原因,详细介绍加密.有了这 ...

  10. 常用Tables控件介绍(二)

    初始化:1.使用现有表单创建数据表格,定义在HTML中的字段和数据 2.使用现有的table创建数据表格,定义在HTML中的字段 3.使用JS创建数据库表格 一.初始化后,根据单元格内的值,修改显示内 ...