欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 【全志H616开发】SQLite打开/创建数据库的C接口

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

2024/10/25 4:15:45 来源:https://blog.csdn.net/qq_40064717/article/details/140830465  浏览:    关键词:【全志H616开发】SQLite打开/创建数据库的C接口

文章目录

  • 打开/创建数据库的C接口函数介绍
    • sqlite3_open函数
    • sqlite3_close函数
    • sqlite3_errmsg函数
  • 代码示例

打开/创建数据库的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 0printf("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;
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com