嵌入式数据库程序(Linux)

来源:互联网 发布:deepin 删除软件 编辑:程序博客网 时间:2024/06/11 18:48
#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 
原创粉丝点击