【全志H616开发】SQLite打开/创建数据库的C接口

打开/创建数据库的C接口函数介绍

sqlite3_open函数

sqlite3_open 是 SQLite 数据库库中的一个函数,用于打开一个新的数据库连接。如果指定的数据库文件不存在,SQLite 将创建一个新的数据库文件。这个函数的原型是:

int sqlite3_open(const char *filename, sqlite3 **ppDb);

参数

  • const char *filename:这是一个 C 字符串,指定要打开的数据库文件的路径和名称。如果传递 “:memory:”,则
    SQLite 将创建一个在内存中运行的临时数据库
  • sqlite3 **ppDb:这是一个指向 sqlite3 结构体指针的指针。当函数成功执行后,它将指向一个新的数据库连接对象。

返回值
这个函数返回一个整数,表示操作的结果。常见的返回值包括:

  • SQLITE_OK(0):表示操作成功,数据库成功打开。
  • 其他错误代码:表示操作失败。错误代码的定义可以在 SQLite 的官方文档中找到。

sqlite3_close函数

sqlite3_close 是 SQLite 数据库库中的一个函数,用于关闭一个打开的数据库连接。这个函数的原型是:

int sqlite3_close(sqlite3*);

参数

  • sqlite3 *: 这是一个指向已打开的数据库连接对象的指针。这个指针之前是通过 sqlite3_open 或相关函数获得的。

返回值
这个函数返回一个整数,表示操作的结果。常见的返回值包括:

  • SQLITE_OK(0):表示操作成功,数据库连接成功关闭
  • 其他错误代码:表示操作失败。错误代码的定义可以在 SQLite
    的官方文档中找到。例如,如果有未完成的事务或未释放的内存,可能会返回错误代码 SQLITE_BUSY

sqlite3_errmsg函数

用于获取最近一次 SQLite 数据库操作的错误消息。这个函数的原型是:

const char *sqlite3_errmsg(sqlite3*);

参数

  • sqlite3 *: 这是一个指向数据库连接对象的指针。这个指针是通过 sqlite3_open 或相关函数获得的。

返回值

  • 这个函数返回一个常量字符指针,指向包含最近一次数据库操作错误消息的字符串。这个字符串描述了最近一次在给定数据库连接上执行的 SQLite
    函数调用所遇到的错误。如果最近的操作没有错误,该函数返回的字符串将表示操作成功(通常是 “not an error”)。

常用来获取最近调用的API接口返回的错误代码(是错误代码数字).

sqlite3_errcode(sqlite3*) ;

错误代码信息:
在这里插入图片描述

代码示例

#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>

int main(int argc,char **argv)
{

    sqlite3 *db = NULL;
    int ret = 0;

    if(argc<2){
        printf("Uage: %s xxx.db\n",argv[0]);
        exit(-1);
    }

    if((ret = sqlite3_open(argv[1],&db)) == SQLITE_OK){  //打开或创建一个数据库对象 成功返回SQLITE_OK 0
        printf("ret = %d   create %s ok\n",ret,argv[1]);//打印返回的数值
    }else{
        printf("ret = %d   creat %s fail\n",ret,argv[1]);//打印返回错误码的数值
        printf("error num = %d  error mesg:%s\n",sqlite3_errcode(db),sqlite3_errmsg(db));//获取最近调用的API接口返回的错误代码 and 错误信息输出
        if(ret==14){//错误码判断
            printf("permisson deny\n");
        }
        exit(-1);
    }

    sqlite3_close(db);

    return 0;
}

在这里插入图片描述

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值