嵌入式数据库程序(Linux)

2019-07-12 18:05发布

class="markdown_views prism-github-gist"> #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(" "); 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