sqlite学习笔记7:C语言中使用sqlite之打开数据库

sqlite学习笔记7:C语言中使用sqlite之打开数据库,第1张

概述数据库的基本内容前面都已经说得差不多了,接下看看怎样在C语言中使用sqlite。 一 接口 sqlite3_open(const char *filename, sqlite3 **ppDb) 打开数据库,如果数据库不存在则新建一个数据库,并打开 sqlite3_close(sqlite3*) 关闭数据库,如果关闭之前还存在没有执行完的语句,将会返回 SQLITE_BUSY 二 实例 1 目录结构

数据库的基本内容前面都已经说得差不多了,接下看看怎样在C语言中使用sqlite。

一 接口

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

打开数据库,如果数据库不存在则新建一个数据库,并打开


sqlite3_close(sqlite3*)

关闭数据库,如果关闭之前还存在没有执行完的语句,将会返回 sqlITE_BUSY


二 实例

1 目录结构

Projects{

main.c// 代码所在文件

sqlite{// 官网下载下来的sqlite压缩包解压之后的文件目录

shell.c// 本文件在项目中实际上是用不上的,这个文件是用来生成sqlite命令工具的,具体可以参考:sqlite学习笔记1

sqlite3.c

sqlite3.h

sqlite3ext.h

}

}


2 源代码

// main.c#include <stdio.h>#include <stdlib.h>#include "sqlite/sqlite3.h"#define DB_name "hanfeng.db"int main(){    sqlite3* db = NulL ;    char* msg = NulL ;    int ret = 0 ;        ret = sqlite3_open(DB_name,&db);    if (ret){        fprintf(stderr,"error open datebase:%s\n.",DB_name) ;        exit(0) ;    }    else{        fprintf(stdout,"successfully open datebase.\n") ;    }    sqlite3_close(db) ;    return 0;}


为了今后扩展方便,现将代码修改如下:

#include <stdio.h>#include <stdlib.h>#include "sqlite/sqlite3.h"#define DB_NANE "sqlite/test.db"sqlite3 *db = NulL;char* sql = NulL;char *zErrMsg = NulL;int ret = 0;typedef enum{    false,true} bool;static int callback(voID *NotUsed,int argc,char **argv,char **azColname){    int i = 0;    for(i=0; i < argc; i++){        printf("%s = %s\n",azColname[i],argv[i] ? argv[i] : "NulL");    }    printf("\n");        return 0;}bool connectDB(){    ret = sqlite3_open(DB_NANE,&db);        if( ret != sqlITE_OK){        fprintf(stderr,"Error open database: %s\n",sqlite3_errmsg(db));        sqlite3_free(zErrMsg);                return false;    }        fprintf(stdout,"Successfully opened database\n");    return true;}bool closeDB(){    int ret = 0;    ret = sqlite3_close(db);    if ( ret == sqlITE_BUSY ){        return false;    }        return true;}int main(int argc,char* argv[]){    connectDB();    closeDB();        return 0;}



3 编译运行

运行有两种方式,基于前面的笔记,我们并没有配置sqlite的环境,仅仅是下载解压得到列一个文件夹sqlite,因此,需要用如下命令:

gcc -o main main.c ./sqlite/sqlite3.c -lpthread -ldl

如果下载配置安装了sqlite,则需要将上面的头文件包含改为:
#include <sqlite3.h>

然后执行命令:
gcc -o main main.c  -lsqlite3


命令执行完成之后会生成一个叫main的可执行文件,输入:
./main

既可以看到结果。


#在编译时使用g++会报错:error: invalID conversion from ‘const voID*’ to ‘const char*’

g++貌似对类型转换要求更为严格,不支持这样的转换。

路过的大侠,知道怎样用g++编译的,请指教......

总结

以上是内存溢出为你收集整理的sqlite学习笔记7:C语言中使用sqlite之打开数据库全部内容,希望文章能够帮你解决sqlite学习笔记7:C语言中使用sqlite之打开数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1171898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存