SQLite的C编程接口——表的打开与查看

目录

一、打开查看表的C接口

二、C代码举例

一、打开查看表的C接口

sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)
#在这里,第一个参数sqlite3 是打开的数据库对象,第二个参数是执行命令,sqlitecallback 是一个回调,data 作为其第一个参数,errmsg 将被返回用来获取程序生成的任何错误。

int callback(void *arg, int column_size, char *column_value[], char *column_name[])
# void *arg:是sqlite3_exec函数的第四个参数
# column_size: 数据库的字段数
# column_value[]: 列的值
# column_name[]:字段名字

二、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;
    for(i=0;i<column_size;i++)
    {
        printf("%s = %s\n", column_name[il, column_value[i]);
    }
    return 0;//必须返回0,这样数据库中有多少条数据,这个回调函数就会被调用多少次
}

int main(char argc,char **argv)
{
    sqlite3 *db;
    int ret;
 
    if(argc < 2)
    {
        printf("Usage: %s xxx.db\n",argv[0]);
        return -1;
    }
    if( (ret = sqlite3_open(argv[1l,&db)) == SQLITE OK)
    {
        printf("open %s success\n",argv[1]);
    }
    else
    {
        printf("error;%s ,%d\n",sglite3 errmsg(db),ret);
    }
    
    sqlite3_exec(db,"select * from stu;",callback, NULL,NULL);

    sqlite3_close(db);
    printf("done\n");
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您好!要在C语言中实现SQLite的模糊查询,您可以使用SQLite提供的API来执行SQL语句。下面是一个简单的示例代码,演示了如何进行模糊查询: ```c #include <stdio.h> #include <stdlib.h> #include <sqlite3.h> int callback(void* data, int argc, char** argv, char** azColName) { for (int i = 0; i < argc; i++) { printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; } int main() { sqlite3* db; char* errMsg = 0; int rc = sqlite3_open(":memory:", &db); if (rc) { fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); return rc; } char* sql = "CREATE TABLE users (id INT, name TEXT);" "INSERT INTO users VALUES (1, 'John');" "INSERT INTO users VALUES (2, 'Alice');" "INSERT INTO users VALUES (3, 'Bob');"; rc = sqlite3_exec(db, sql, callback, 0, &errMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", errMsg); sqlite3_free(errMsg); return rc; } char* query = "SELECT * FROM users WHERE name LIKE '%o%';"; rc = sqlite3_exec(db, query, callback, 0, &errMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", errMsg); sqlite3_free(errMsg); return rc; } sqlite3_close(db); return 0; } ``` 在上面的示例中,我们首先创建了一个名为`users`的,并插入了一些数据。然后,我们执行了一个模糊查询,通过`LIKE`关键字和通配符`%`来匹配包含字母`o`的所有记录。结果会通过回调函数`callback`打印出来。 请注意,上述示例代码假设您已经在系统上正确安装了SQLite,并将其链接到您的C项目中。在编译和运行代码之前,请确保已正确配置SQLite的开发环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

琪琪猫不会嵌入式

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

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

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

打赏作者

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

抵扣说明:

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

余额充值