嵌入式数据库程序(Linux)

#include
#include
#include
#include  //数据库头文件

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

    for(j=0;jprintf("%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 

你可能感兴趣的:(数据库)