sqlite3 C语言编程
来源:互联网 发布:成都泛悦国际淘宝地址 编辑:程序博客网 时间:2024/06/05 02:55
sqlite数据库操作例程:
#include<stdio.h>#include<sqlite3.h>#include<string.h>int main(){sqlite3 *db;char *zErrMsg = 0;char sql[128];//存放sqlite执行命令char buff[1024];//存放读取到的数据结果int rc;int len = 0;memset(buff,0,sizeof(buff));rc = sqlite3_open("test.db",&db);//打开数据库if(rc != SQLITE_OK){printf("zErrMsg = %s\n",zErrMsg);return -1;}memset(sql,'\0',128);strcpy(sql,"create table student(id integer,name varchar(10),f float);");//创建表sqlite3_exec(db,sql,0,0,&zErrMsg);//执行sqlite命令语句memset(sql,'\0',128);strcpy(sql,"insert into student values(1,'xiaoming',1.1);");//插入数据rc = sqlite3_exec(db,sql,0,0,&zErrMsg);if(rc != SQLITE_OK){printf("zErrMsg = %s\n",zErrMsg);return -1;}memset(sql,'\0',128);strcpy(sql,"insert into student values(2,'xiaohong',1.2);");rc = sqlite3_exec(db,sql,0,0,&zErrMsg);if(rc != SQLITE_OK){printf("zErrMsg = %s\n",zErrMsg);return -1;}int nrow = 0,ncolnum = 0;char **azResult;//存放查询结果memset(sql,'\0',128);strcpy(sql,"select * from student;");rc = sqlite3_get_table(db,sql,&azResult,&nrow,&ncolnum,&zErrMsg); //查询数据if(rc != SQLITE_OK){printf("zErrMsg = %s\n",zErrMsg);return -1;}int i = 0;printf("row:%d colnum=%d\n",nrow,ncolnum);for(i = ncolnum;i < (nrow+1)*ncolnum;i++){printf("azResult[%d] = %s\n",i,azResult[i]);//打印memcpy(buff+len,azResult[i],strlen(azResult[i])); //整条数据保存到另一个bufflen+=strlen(azResult[i]);}for(i = 0;i < len;i++){printf("%c ",buff[i]);}printf("\n");memset(sql,'\0',128);strcpy(sql,"delete from student;");//删除sqlite3_exec(db,sql,0,0,&zErrMsg);sqlite3_free(zErrMsg);sqlite3_free_table(azResult);//释放空间sqlite3_close(db);//关闭数据库return 0; }
编译:gcc test.c -o test -lsqlite3
运行结果:
另一套查询接口:
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sqlite3.h>int main(){sqlite3 *db;char *zErrMsg = 0;char sql[128];int rc;int len = 0;rc = sqlite3_open("test1.db",&db);if(rc != SQLITE_OK){printf("zErrMsg = %s\n",zErrMsg);return -1;}sprintf(sql,"create table student(id integer,name varchar(10),f float,Occur DATETIME DEFAULT(datetime('now','localtime')));");sqlite3_exec(db,sql,0,0,&zErrMsg); sprintf(sql,"insert into student(id,name,f) values(%d,'%s',%f);",1,"小明",3.33); if(sqlite3_exec(db,sql,0,0,&zErrMsg)!=SQLITE_OK){printf("zErrMsg = %s\n",zErrMsg); return 0x0b;}sqlite3_stmt *stmt;int ncols;sprintf(sql,"select * from student");rc = sqlite3_prepare(db,sql,strlen(sql),&stmt,NULL);if(rc !=SQLITE_OK){fprintf(stderr,"sql error:%s\n",sqlite3_errmsg(db));}while(sqlite3_step(stmt) == SQLITE_ROW){fprintf(stdout,"%d ,%s ,%f,%s\n",sqlite3_column_int(stmt,0),sqlite3_column_text(stmt,1),sqlite3_column_double(stmt,2),sqlite3_column_text(stmt,3));}sqlite3_finalize(stmt);sqlite3_close(db);}
0 0
- sqlite3 C语言编程
- C语言编程之数据库 -- sqlite3
- SQLITE3,C语言使用
- SQLITE3,C语言使用
- SQLITE3,C语言使用
- linux下C语言编程操作数据库(sqlite3)
- SQLite3的C编程
- SQLite3 -- C 编程
- Linux C SQLite3 编程
- Linux C SQLite3 编程
- SQLite3 -- C 编程
- Linux C SQLite3 编程
- Linux C SQLite3 编程
- linux c sqlite3 编程
- Linux SQLite3 C 编程
- Linux C SQLite3 编程
- SQLite3 C语言API入门
- SQLite3 C语言API使用说明
- SCP两台linux主机文件拷贝
- 为Ubuntu安装build-essential软件包
- iOS开发基础:NSLog输出格式详解
- VC++ - 各种DC及DC资源释放
- 【PMP认证考试感悟】走向管理的开始
- sqlite3 C语言编程
- Android性能调优
- ASP.NET中的EnableViewState
- Bash 变量与参数初步
- 研究生应当常去的网站
- 如何程序判断当前设备是手机还是平板
- 软链接与硬链接
- ebs 11i利用DNS实现应用双节点负载均衡
- vim配置指南