#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
嵌入式数据库程序(Linux)
最新推荐文章于 2024-08-13 21:43:47 发布