加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++操作sqlite3数据库示例代码

发布时间:2020-12-16 07:48:21 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 一个简单的使用sqlite3数据库的电话薄,很简单适合初学者看看,而且里面并没有很多容错处理很容易看懂的。 #includestdio.h#include"sqlite3.h"static

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

一个简单的使用sqlite3数据库的电话薄,很简单适合初学者看看,而且里面并没有很多容错处理很容易看懂的。
#include<stdio.h>
#include"sqlite3.h"
static int callback(void *notused,int l,char **v,char **lname);
int seek(sqlite3 *db);
int insert(sqlite3 *db);
int replace(sqlite3 *db); 
int del(sqlite3 *db);
int option(sqlite3 *db); 
int quit(sqlite3 *db); 
int main()
{   
    int num;
    int rc;
    struct sqlite3 *db;
    rc=sqlite3_open("sql.db",&db);
    if(rc)
    {
        printf("成功打开数据库");
    }
    else printf("数据库打开失败");
    num=option(db);
    quit(db);
}
int option(sqlite3 *db)
{
    int num;
    int rc;
    printf("t1.查询nt2.添加记录nt3.更新记录nt4.删除记录nt5.清屏nt6.创建表nt7.退出n");
    printf("请输入:");
    scanf("%d",&num);
    switch (num)
    {
        case 1:seek(db);
        break;
        case 2:rc=insert(db);
        break;
        case 3:replace(db);
        break;
        case 4:del(db);
        break;
        case 5:
                {
                    system("cls");
                    option(db);
                }
        case 6:
                {
                    rc=sqlite3_exec(db,"CREATE TABLE telbook(name,telnum)",NULL);
                    printf("%dn",rc);
                }
        break;
        case 7:{
                    printf("即将关闭n");
                    quit(db);
                }
        break;
        default:
                {   printf("请选择?n");
                    option(db);
                } 
        break;
    }
}
int seek(sqlite3 *db)
{
    int num;
    int rc;
    char *zSQL;
    char *sql_name[20],*sql_telnum[11];
    printf("t1.根据名字查找nt2.根据电话查找nt3.显示所有nt4.回上级目录");
    scanf("%d",&num);
    switch (num)
    {
        case 1:
            {
                printf("请输入名字:");
                scanf("%s",sql_name);
                zSQL= sqlite3_mprintf("select * from telbook where name='%q'",sql_name);
                rc=sqlite3_exec(db,zSQL,callback,NULL);
                sqlite3_free(zSQL);
            }
        break;
        case 2:
            {
                printf("请输入电话");
                scanf("%s",sql_telnum);
                zSQL= sqlite3_mprintf("select * from telbook where telnum='%q'",sql_telnum);
                rc=sqlite3_exec(db,NULL);
                sqlite3_free(zSQL);
            }
        break;
        case 3:rc=sqlite3_exec(db,"select * from telbook",NULL);
        break;
        case 4:option(db);
        break;
        default :
                {   printf("请选择要执行的操作n");
                    option(db);
                }
    }
    printf("%dn",rc);
    option(db);
}
int insert(sqlite3 *db)
{
    int rc;
    char *sql_name[20],*sql_telnum[11];
    printf("输入姓名和电话以空格分隔:");
    scanf("%s %s",sql_name,sql_telnum);
    char *zSQL;
    zSQL= sqlite3_mprintf("INSERT INTO telbook VALUES('%q','%q')",sql_telnum);
    rc=sqlite3_exec(db,NULL);
    sqlite3_free(zSQL);
    printf("%dn",rc);
    option(db);
    return 0;
}
int replace(sqlite3 *db)
{
    int rc;
    char *sql_name[20],*sql_telnum[11];
    printf("请输入名字和新电话号码:");
    scanf("%s %s",sql_telnum);
    char *zSQL;
    zSQL= sqlite3_mprintf("update telbook set telnum='%q' where name='%q'",sql_telnum,sql_name);
    rc=sqlite3_exec(db,rc);
    option(db);
    return 0;
}
int del(sqlite3 *db)
{
    int rc;
    char *sql_name[20],*sql_telnum[11];
    printf("请输入要删除的姓名:");
    scanf("%s",sql_name);
    char *zSQL;
    zSQL= sqlite3_mprintf("DELETE FROM telbook where name='%q'",rc);
    option(db);
    return 0;
}
int quit(sqlite3 *db)
{   int rc;
    rc=sqlite3_close(db); 
    if (rc)
    {
        printf("成功关闭数据库n");
    }
    else printf("关闭失败n");
    system("pause");
    exit(1);
}
static int callback(void *notused,char **lname)
{
    int i;
    for (i=0;i<l;i++)
    {
        printf("%st",v[i]);
    }
    printf("n");
    return 0;
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读