sqlite3 C语言编程

转载 2018年04月16日 13:07:35

sqlite数据库操作例程:

[plain] view plain copy
  1. #include<stdio.h>  
  2. #include<sqlite3.h>  
  3. #include<string.h>  
  4.   
  5. int main()  
  6. {  
  7.     sqlite3 *db;  
  8.     char *zErrMsg = 0;  
  9.     char sql[128];      //存放sqlite执行命令  
  10.     char buff[1024];    //存放读取到的数据结果  
  11.     int rc;  
  12.     int len = 0;  
  13.     memset(buff,0,sizeof(buff));  
  14.     rc = sqlite3_open("test.db",&db);   //打开数据库  
  15.     if(rc != SQLITE_OK)  
  16.     {  
  17.         printf("zErrMsg = %s\n",zErrMsg);  
  18.         return -1;  
  19.     }  
  20.   
  21.     memset(sql,'\0',128);  
  22.     strcpy(sql,"create table student(id integer,name varchar(10),f float);");//创建表  
  23.     sqlite3_exec(db,sql,0,0,&zErrMsg);  //执行sqlite命令语句  
  24.   
  25.     memset(sql,'\0',128);  
  26.     strcpy(sql,"insert into student values(1,'xiaoming',1.1);");    //插入数据  
  27.     rc = sqlite3_exec(db,sql,0,0,&zErrMsg);  
  28.     if(rc != SQLITE_OK)  
  29.     {  
  30.         printf("zErrMsg = %s\n",zErrMsg);  
  31.         return -1;  
  32.     }  
  33.   
  34.     memset(sql,'\0',128);  
  35.     strcpy(sql,"insert into student values(2,'xiaohong',1.2);");  
  36.     rc = sqlite3_exec(db,sql,0,0,&zErrMsg);  
  37.     if(rc != SQLITE_OK)  
  38.     {  
  39.         printf("zErrMsg = %s\n",zErrMsg);  
  40.         return -1;  
  41.     }  
  42.   
  43.     int nrow = 0,ncolnum = 0;  
  44.     char **azResult;    //存放查询结果  
  45.   
  46.     memset(sql,'\0',128);  
  47.     strcpy(sql,"select * from student;");  
  48.     rc = sqlite3_get_table(db,sql,&azResult,&nrow,&ncolnum,&zErrMsg); //查询数据  
  49.     if(rc != SQLITE_OK)  
  50.     {  
  51.         printf("zErrMsg = %s\n",zErrMsg);  
  52.         return -1;  
  53.     }  
  54.   
  55.     int i = 0;  
  56.     printf("row:%d colnum=%d\n",nrow,ncolnum);  
  57.     for(i = ncolnum;i < (nrow+1)*ncolnum;i++)  
  58.     {  
  59.         printf("azResult[%d] = %s\n",i,azResult[i]);    //打印  
  60.         memcpy(buff+len,azResult[i],strlen(azResult[i])); //整条数据保存到另一个buff  
  61.         len+=strlen(azResult[i]);  
  62.     }  
  63.     for(i = 0;i < len;i++)  
  64.     {  
  65.         printf("%c ",buff[i]);  
  66.     }  
  67.     printf("\n");  
  68.   
  69.     memset(sql,'\0',128);  
  70.     strcpy(sql,"delete from student;"); //删除  
  71.     sqlite3_exec(db,sql,0,0,&zErrMsg);  
  72.   
  73.     sqlite3_free(zErrMsg);  
  74.     sqlite3_free_table(azResult);   //释放空间  
  75.     sqlite3_close(db);      //关闭数据库  
  76.     return 0;      
  77. }  

编译:gcc  test.c  -o  test  -lsqlite3

运行结果:



另一套查询接口:

[objc] view plain copy
  1. #include<stdio.h>  
  2. #include<stdlib.h>  
  3. #include<string.h>  
  4. #include<sqlite3.h>  
  5.   
  6. int main()  
  7. {  
  8.     sqlite3 *db;  
  9.     charchar *zErrMsg = 0;  
  10.     char sql[128];  
  11.     int rc;  
  12.     int len = 0;  
  13.     rc = sqlite3_open("test1.db",&db);  
  14.     if(rc != SQLITE_OK)  
  15.     {  
  16.         printf("zErrMsg = %s\n",zErrMsg);  
  17.         return -1;  
  18.     }  
  19.     sprintf(sql,"create table student(id integer,name varchar(10),f float,Occur DATETIME DEFAULT(datetime('now','localtime')));");  
  20.     sqlite3_exec(db,sql,0,0,&zErrMsg);  
  21.     sprintf(sql,"insert into student(id,name,f) values(%d,'%s',%f);",1,"小明",3.33);  
  22.     if(sqlite3_exec(db,sql,0,0,&zErrMsg)!=SQLITE_OK)  
  23.     {  
  24.         printf("zErrMsg = %s\n",zErrMsg);     
  25.         return 0x0b;  
  26.     }  
  27.       
  28.     sqlite3_stmt *stmt;  
  29.     int ncols;  
  30.     sprintf(sql,"select * from student");  
  31.     rc = sqlite3_prepare(db,sql,strlen(sql),&stmt,NULL);  
  32.     if(rc !=SQLITE_OK)  
  33.     {  
  34.         fprintf(stderr,"sql error:%s\n",sqlite3_errmsg(db));  
  35.     }  
  36.     while(sqlite3_step(stmt) == SQLITE_ROW)  
  37.     {  
  38.         fprintf(stdout,"%d ,%s ,%f,%s\n",  
  39.             sqlite3_column_int(stmt,0),  
  40.             sqlite3_column_text(stmt,1),  
  41.             sqlite3_column_double(stmt,2),            
  42.             sqlite3_column_text(stmt,3)  
  43.         );  
  44.     }  
  45.     sqlite3_finalize(stmt);  
  46.     sqlite3_close(db);  
  47. }  

linux下的sqlite3C语言编程实例

  • 2012年10月28日 10:59
  • 630KB
  • 下载

C语言编程之数据库 -- sqlite3

数据库作为我们常用的一种存储方式,不仅管理起来比文件操作更为方便,也保证了数据的安全性。数据库的使用有以下两种方式,第一种进入数据库直接进行操作,第二种是在命令下操作。更为常用的是使用数据库的命令来操...
  • zhengqijun_
  • zhengqijun_
  • 2016-11-07 20:02:20
  • 513

SQLite3 C语言API使用说明

转载自:http://www.blogjava.net/xylz/archive/2012/09/25/388519.html SQLite3 C语言API入门 下载SQLite3 ...
  • zgrjkflmkyc
  • zgrjkflmkyc
  • 2015-04-20 15:32:12
  • 2922

linux下sqlite3在c语言中应用实例

/* ************************************************************************** * File Name: 1.sqlite3...
  • qq_30594349
  • qq_30594349
  • 2016-11-03 00:09:27
  • 2157

linux下C语言编程操作数据库(sqlite3)

前言:C语言中通过调用 sqlite 的函数接口来实现对数据库的管理(创建数据库、创建表格、插入数据、查询、数据、删除数据等),掌握sqlite数据库的语法,以及sqlite提供的函数接口,那么在li...
  • zouleideboke
  • zouleideboke
  • 2017-06-23 17:25:15
  • 2366

sqlite3 数据库

  • 2011年03月23日 16:46
  • 276KB
  • 下载

sqlite3使用详解.pdf

  • 2010年08月13日 18:06
  • 188KB
  • 下载

sqlite3数据库

  • 2008年08月26日 09:43
  • 201KB
  • 下载

sqlite3 sqlite3 sqlite3

  • 2017年11月20日 16:11
  • 266KB
  • 下载

Linux下的C语言编程——sqlite3的基本操作

在C语言中实现sqlite3的基本操作#include #include #include int delete(sqlite3 *db) { char *errmsg; char sq...
  • goodman_lqifei
  • goodman_lqifei
  • 2016-11-13 21:29:21
  • 258
收藏助手
不良信息举报
您举报文章:sqlite3 C语言编程
举报原因:
原因补充:

(最多只允许输入30个字)