嵌入式数据库
来源:互联网 发布:lcd1602数据口反了 编辑:程序博客网 时间:2024/05/29 11:22
#include <stdio.h>#include <sqlite3.h>#include <string.h>#include <stdlib.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);"); //把格式化的数据写入sql字符串缓冲区 ret = sqlite3_exec(ppdb, sql, NULL, NULL, NULL); //编译和执行零个或多个SQL 语句 if (ret != SQLITE_OK) { perror("sqlite3_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); if (ret != SQLITE_OK) { perror("sqlite3_exec2"); exit(1); } memset(name, 0, sizeof(name)); } sprintf(sql, "select * from student;"); ret = sqlite3_exec(ppdb, sql, print, NULL, NULL); if (ret != SQLITE_OK) { perror("sqlite3_exec3"); exit(1); } return 0;}
阅读全文
0 0
- 嵌入式数据库
- 嵌入式数据库
- 嵌入式数据库
- 嵌入式数据库
- firebird嵌入式数据库
- 嵌入式数据库(转)
- 嵌入式数据库性能基准
- 嵌入式数据库介绍
- 嵌入式数据库的应用
- ML嵌入式数据库测试
- 什么是嵌入式数据库
- firebird嵌入式数据库
- 嵌入式数据库 SQLite 简介
- 【转】嵌入式数据库 SQLite
- 嵌入式空间数据库研究
- 常用嵌入式数据库
- 嵌入式数据库sqlite
- 嵌入式数据库sqlite
- Java中的初始化
- 常见排序算法以及复杂度
- 外汇CRM系统
- iOS音频篇:使用AVPlayer播放网络音乐
- JAVA的方法
- 嵌入式数据库
- MySQL INNER JOIN关联多张表的写法
- OSAL osal_msg_send解读
- 酷炫轮播广告
- Java 集合Collection与List的详解
- vue项目问题
- python基础
- vue-引入 ElementUI
- Leetcode 337. House Robber III