Linux——C语言调用sqlite3
来源:互联网 发布:淘宝拍照用什么镜头 编辑:程序博客网 时间:2024/05/21 17:38
之前有记录了在linux下的sqlite3的安装以及简单使用,实际上sqlite3是提供了很多C语言的API接口的,接下来就来结合一个实例来学习C语言+sqlite3的使用。
常用的API有:
sqlite3_open()
sqlite3_prepare()
sqlite3_step()
sqlite3_column()
sqlite3_finalize()
sqlite3_close()
sqlite3_exec()
sqlite3_get_table()
sqlite3_reset()
sqlite3_bind()
最常用的也只有其中的几个,所以应该不是很困难,需要的时候在进行查阅即可。
一个简单的书本管理系统:
/********************************************************************************* * Copyright: (C) 2017 TangBin<tangbinmvp@gmail.com> * All rights reserved. * * Filename: book.c * Description: This file * * Version: 1.0.0(07/16/2017) * Author: TangBin <tangbinmvp@gmail.com> * ChangeLog: 1, Release initial version on "07/16/2017 07:27:09 PM" * ********************************************************************************/#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>#include <string.h>char *errmsg;void insert_values(sqlite3 *db){ char *sql; char book_name[48]; int book_num; float price; printf("输入书号:"); scanf("%d", &book_num); printf("输入书名:"); scanf("%s", book_name); printf("输入价格:"); scanf("%f", &price); sql = sqlite3_mprintf("insert into book values('%d', '%s', '%f')", book_num, book_name, price); if(SQLITE_OK != sqlite3_exec(db, sql, NULL, NULL, &errmsg) ) { printf("sqlite3_exec insert error\n"); exit(1); } else printf("插入成功!\n"); return;}void del_values(sqlite3 *db){ char *sql; int n; printf("输入要删除的序号:"); scanf("%d", &n); sql = sqlite3_mprintf("delete from book where number ='%d'", n); if(SQLITE_OK != sqlite3_exec(db, sql, NULL, NULL, &errmsg) ) { printf("sqlite3_exec delete error\n"); exit(1); } else { printf("删除成功!\n"); } return;}void update_values(sqlite3 *db){ char *sql; char book_name[48]; int book_num; float price; printf("书号:"); scanf("%d", &book_num); printf("更新-输入书名:"); scanf("%s", book_name); printf("更新-输入价格:"); scanf("%f", &price); sql = sqlite3_mprintf("update book set book_name = '%s', price = '%f' where book_num = '%d'", book_name, price, book_num); if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg) ) { printf("sqlite3_exec update error\n"); exit(1); } else { printf("更新成功!\n"); } return;}void display(sqlite3 *db){ char **pResult; int row, column, i, j, index; char *sql = "select * from book"; if(SQLITE_OK != sqlite3_get_table(db,sql,&pResult,&row,&column,&errmsg) ) { printf("can not get table\n"); exit(1); } index = column; for(i=0; i<column; i++) { printf("%-s\t", pResult[i]); } printf("\n"); for(i=0; i<row; i++) { for(j=0; j<column; j++) { printf("%-5s \t", pResult[index++]); } printf("\n"); } return;}void quit(sqlite3 *db){ printf("byebye!\n"); sqlite3_close(db); exit(0);}void drop_table(sqlite3 *db){ char *sql = "DROP TABLE IF EXISTS book;"; if(SQLITE_OK != sqlite3_exec(db, sql, NULL, NULL, &errmsg) ) { printf("drop table error!\n"); exit(1); } printf("drop book table!\n");}int main(){ int n; sqlite3 *db; if(SQLITE_OK != sqlite3_open("book.db",&db) ) { printf("sqlite3_open error\n"); exit(1); } const char *sql = "CREATE TABLE IF NOT EXISTS book\ (book_num int primary key,\ book_name text NOT NULL,\ price real);"; if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg) ) { printf("表创建失败!\n"); return 0; } while(1) { printf("-- <1> insert values --\n"); printf("-- <2> delete values --\n"); printf("-- <3> update values --\n"); printf("-- <4> display --------\n"); printf("-- <5> quit -----------\n"); printf("-- <6> drop book table \n"); printf("Enter number you want:\n"); scanf("%d", &n); switch(n) { case 1: insert_values(db); break; case 2: del_values(db); break; case 3: update_values(db); break; case 4: display(db); break; case 5: quit(db); break; case 6: drop_table(db); break; } } return 0;}
程序还有一些缺陷,比如更新数据前没有判断表是不是存在等。比较简单,用来熟悉学习一下还是可以的。
阅读全文
0 0
- Linux——C语言调用sqlite3
- C语言调用sqlite3 学生管理系统
- 简单的用C语言调用Sqlite3
- Linux下的C语言编程——sqlite3的基本操作
- Linux下的C语言编程——sqlite3实现停车场管理系统
- sqlite3 linux c语言 基本操作
- C语言中 sqlite3 的 一些调用方式
- Linux—sqlite3
- SQLITE3,C语言使用
- SQLITE3,C语言使用
- SQLITE3,C语言使用
- sqlite3 C语言编程
- linux下c语言操作sqlite3(1)
- linux C语言 数据库sqlite3的添加,删除,查看
- linux C语言 数据库sqlite3的添加,删除,查看
- linux下sqlite3在c语言中应用实例
- Linux下C语言中sqlite3数据库的操作
- linux下C语言编程操作数据库(sqlite3)
- 接口自动化之json取值
- Linux学习第二十五篇--正则表达式和文件内容处理
- MVC5学习小记(1)
- windows 下Intellij idea的安装以及破解
- CUDA编程(一)第一个CUDA程序
- Linux——C语言调用sqlite3
- 解决Sqlite Developer过期的最简单办法
- 手机屏幕投影到macbook
- Codeforces 830A. Office Keys 【dp】
- 打印菱形(数学方法)
- Chpater03 Hadoop组件(一) 文件的基本操作
- 分布式存储Seaweedfs源码分析
- MySql的保留字段的问题
- Sudo用户管理