嵌入式数据库程序(Linux)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sqlite3.h>  //数据库头文件

int print(void *para,int columnCount,char **columnValue,char **columnName)//因为包含的内容分为行和列所以用**
{
    int j;

    for(j=0;j<columnCount;j++)
    {
        printf("%s = %s    ",columnName[j],columnValue[j]);
    }

    printf("\n");

    return 0;
}
int main()
{
    sqlite3 *ppdb;  //数据库的描述符
    int ret,i;
    char sql[100] = {0};
    char name[20] = {0};
    int id;
    char sex;

    ret = sqlite3_open("student.db",&ppdb); //打开数据库,如果不存在则创建;参数一(输入参数):待打开的数据库文件名称;参数二(输出参数):返回打开的数据库句柄
    if(ret != SQLITE_OK)
    {
        perror("sqlite3_open");
        exit(1);
    }

    sprintf(sql,"create table if not exists student(name text,id integer,sex text);");  //将字符串写入数组中,用于下面的执行
    ret = sqlite3_exec(ppdb,sql,NULL,NULL,NULL); //编译和执行零个或多个SQL语句。参数一(输入参数):数据库句柄;参数二:待执行SQL语句字符串(此处是创建一个student表格);参数三:回调函数,可执行增删改查;参数四:用户传入的参数,可以为空,该参数指针最终会被传给回调函数;参数五(输出参数):返回错误信息
    if(ret != SQLITE_OK)
    {
        perror("sqlite_exec1");
        exit(1);
    }

    for(i=0;i<3;i++)
    {
        memset(sql,0,sizeof(sql));
        scanf("%s %d %c",name,&id,&sex);

        sprintf(sql,"insert into student (name,id,sex)values('%s','%d','%c');",name,id,sex); 
        ret = sqlite3_exec(ppdb,sql,NULL,NULL,NULL);  //执行SQL增加语句,将输入的用户信息加入到数据库中
        if(ret != SQLITE_OK)
        {
            perror("sqlite_exec2");
            exit(1);
        }
        memset(name,0,sizeof(name));
    }

    sprintf(sql,"select * from  student");

    ret = sqlite3_exec(ppdb,sql,print,NULL,NULL);//打印student表中所有的内容
    if(ret != SQLITE_OK)
    {
        perror("sqlite3_exec3");
        exit(1);
    }

    return 0;

}


执行结果:

            feng 10 M
            YUAN 66 W
            tian 22 M
            name = feng    id = 10    sex = M    
            name = YUAN    id = 66    sex = W    
            name = tian    id = 22    sex = M 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值