Linux下的C语言编程——sqlite3的基本操作
来源:互联网 发布:java占用cpu过高 编辑:程序博客网 时间:2024/05/16 14:10
在C语言中实现sqlite3的基本操作
#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>int delete(sqlite3 *db){char *errmsg;char sql[100];int id;printf("input a id you want to delete!\n");scanf("%d",&id);sprintf(sql,"delete from mytable where id = %d;",id);if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)){printf("fail:%s\n",errmsg);printf("\n");exit(-1);}}int display(void *para,int col_count,char **col_value,char **col_name){int i;printf("total column is %d\n",col_count);for(i = 0; i < col_count; i++){printf("%s: %s: \n",col_name[i],col_value[i]);}printf("********************\n");return 0;}int display_usecb(sqlite3 *db){char *errmsg;char *sql;sql = "select * from mytable;";if(SQLITE_OK != sqlite3_exec(db,sql,display,NULL,&errmsg)){printf("fail:%s\n",errmsg);printf("\n");exit(-1);}}int insert_record(sqlite3 *db){char *errmsg;char sql[100];int id;char name[10];printf("input a id you want to insert!\n");scanf("%d",&id);printf("input a name you want to insert!\n");scanf("%s",name);sprintf(sql,"insert into mytable (id,name) values (%d,'%s');",id,name);if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)){printf("fail:%s\n",errmsg);printf("\n");exit(-1);}/*sql = "insert into mytable (id,name) values (NULL,'qi');";if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)){printf("fail:%s\n",errmsg);printf("\n");}sql = "insert into mytable (id,name) values (NULL,'fei');";if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)){printf("fail:%s\n",errmsg);printf("\n");}*/}int creat_table(sqlite3 *db){char *errmsg;char *sql;sql = "create table if not exists mytable (id integer primary key,name text);";if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)){printf("fail:%s\n",errmsg);printf("\n");exit(-1);}}int display_nocb(sqlite3 *db){int nrow;int ncolumn;int i;char *errmsg;char **aresult;char *sql;sql = "select * from mytable;";if(SQLITE_OK != sqlite3_get_table(db,sql,&aresult,&nrow,&ncolumn,&errmsg)){printf("file : %s\n",errmsg);printf("\n");exit(-1);}printf("row : %dcolumn : %d\n",nrow,ncolumn);for(i = 0; i < (nrow + 1) * ncolumn; i++){printf("%10s",aresult[i]);if((i + 1) % ncolumn == 0){printf("\n");}}sqlite3_free_table(aresult);}int main(){int ret;sqlite3 *db;ret = sqlite3_open("test.db",&db);if(ret != SQLITE_OK){perror("sqlite open:");exit(-1);}creat_table(db);insert_record(db);display_usecb(db);delete(db);//display_usecb(db);display_nocb(db); return 0;}
0 0
- Linux下的C语言编程——sqlite3的基本操作
- Linux下的C语言编程——线程编程基本操作
- Linux下的C语言编程——线程编程基本操作
- Linux下的C语言编程——线程编程基本操作
- Linux下的C语言编程——线程编程基本操作
- C语言Linux环境下编程的基本操作
- Linux下C语言中sqlite3数据库的操作
- Linux下的C语言编程——sqlite3实现停车场管理系统
- Linux下Sqlite3数据库的基本操作
- linux下C语言编程操作数据库(sqlite3)
- Linux下的C语言编程——栈操作
- Linux下的C语言编程——文件操作
- sqlite3 linux c语言 基本操作
- Linux下的C语言编程——用链表实现栈操作
- Linux下的C语言编程——链表实现队列操作
- Linux下的C语言编程——进程间通过signal函数通信简单操作
- Linux下C语言编程--文件的操作
- Linux下C语言编程--文件的操作
- 2016.11.13
- 关于JAVA的传递方式只能是“值传递”
- CLR via C# Reading Notes(2)
- 点云库PCL学习笔记1
- [gdc15]<暗黑破坏神3:夺魂之镰>的开发之路
- Linux下的C语言编程——sqlite3的基本操作
- JVM时间显示问题
- 不相交集合的学习笔记
- 通过 AWS 的 Lambda 和 API Gateway 走向 Serverless
- 循环与数组
- 正则表达式学习
- My第一篇博客
- Udacity DEEPLEARNING 学习笔记 L4 TEXT AND SEQUENCE MODEL
- Oracle 创建用户、表空间,及为索引指定表空间