(二十三) SQLite的编程操作②各种操作数据库中表的C接口

SQLite的编程操作②

各种操作数据库中表的C接口函数介绍

主要函数:

int sqlite3_exec(
       sqlite3*,                                 
       const char *sql,                           
       int (*callback)(void*,int,char**,char**),  
       void *data,                                   
       char **errmsg                             
    );
sqlite3*            : open 打开的数据库
const char* sql,    : 执行的sql功能语句(可以很多语句)
*callback,          : sql语句对应的回调函数
void* data,         : 传递给回调函数的 指针参数
char **errmsq       : 错误信息
int callback(void *arg, int column_size, char *column_value[], char
*column_name[])
 *arg            :是sqlite3_exec函数的第四个参数data
column_size      :数据库的字段数(就是name sec num 这些类型有几个)
column_value[]   :列的值(就是对应的name sec score 对应的值)
column_name      :字段名字(就是name sec score的这些名字)

回调函数:会先执行*sql对应的功能命令,然后将结果传递给回调函数

数据库中有几条数据它回调函数就会调用几次;

编写操作数据库中表的C接口实战

功能描述:
查看数据库表中的数据;

代码:

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

int callback(void *arg, int column_size, char *column_value[], char*column_name[])
{
    int i;
    printf("arg = %s\n",(char *)arg);
    for(i=0;i<column_size;i++){
        printf("%s = %s\n",column_name[i],(char *)column_value[i]);
    }
    printf("========================\n");
    return 0 ;// 数据库中有几条数据它回调函数就会调用几次
}
int main(int argc,char **argv)
{
    sqlite3 *db = NULL;
    int ret = 0;
    char *errmsg;

    if(argc<2){
        printf("Uage: %s xxx.db\n",argv[0]);
        exit(-1);
    }
    if((ret = sqlite3_open(argv[1],&db)) == SQLITE_OK){
        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));
        if(ret==14){
            printf("permisson deny\n");
        }
        exit(-1);
    }

    sqlite3_exec(db,"select * from stu;",callback,"into callback",&errmsg);
    sqlite3_close(db);

    return 0;
}


测试:

test.db的数据库数据:

四个数据段
两条数据

请添加图片描述

代码执行:

请添加图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小爪.exe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值