C语言编写简单的sql数据库
首先我们先了解sql语句的几个基本操作函数的函数原型
打开或创建数据库:
sqlite3_open(const char *filename, sqlite3 **ppDb)
如果filename为NULL或者为 ':memory:'那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。
如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。
sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。
sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)
第一个参数 :sqlite3 是打开的数据库对象。
第二个参数:sqlite_callback 是一个回调。
第三个参数:data 作为其第一个参数。
第四个参数:errmsg 将被返回用来获取程序生成的任何错误。
关闭数据库
sqlite3_close(sqlite3*)
代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>static int callback(void *notused,int argc,char **argv,char **name)
{int i;for(i=0;i<argc;i++){printf("%s=%s\n",name[i],argv[i]?argv[i]:"NULL");}printf("\n");return 0;
}int main(int argc,char **argv)
{sqlite3 *db;char *zErrMsg = 0;int rc;char *sql;const char *data = "Callback function called";rc = sqlite3_open("t.db",&db); //打开数据库,如果不存在,创造数据库dbif(rc){fprintf(stderr,"can't open database:%s\n",sqlite3_errmsg(db));exit(0);}fprintf(stdout,"open database successfully\n");//创建表TEMPERTUREsql = "CREATE TABLE IF NOT EXISTS TEMPERTURE(""ID INT IDENTITY(1,1)," "NAME CAHR(8)," "AGE INT(4));";rc = sqlite3_exec(db,sql,callback,0,&zErrMsg);if(rc != SQLITE_OK){fprintf(stderr,"SQLerror:%s\n",zErrMsg);sqlite3_free(zErrMsg);exit(0);}fprintf(stdout,"Table created successfully\n");//插入语句sql = "INSERT INTO TEMPERTURE (ID,NAME,AGE) ""VALUES (1,'Paul', 32); " "INSERT INTO TEMPERTURE (ID,NAME,AGE) " "VALUES (2, 'Allen', 25 ); " "INSERT INTO TEMPERTURE (ID,NAME,AGE)" "VALUES (3,'Teddy', 23 );" "INSERT INTO TEMPERTURE (ID,NAME,AGE)" "VALUES (4,'Mark', 25 );";rc=sqlite3_exec(db,sql,callback,0,&zErrMsg);if(rc != SQLITE_OK){fprintf(stderr,"SQLerror:%s\n",zErrMsg);sqlite3_free(zErrMsg);exit(0);}fprintf(stdout,"insert data successfully\n");//查询语句sql = "SELECT * from TEMPERTURE";rc = sqlite3_exec(db,sql,callback,(void*)data,&zErrMsg);if(rc != SQLITE_OK){fprintf(stderr,"SQLerror:%s\n",zErrMsg);sqlite3_free(zErrMsg);exit(0);}else{fprintf(stdout,"Option done successfully\n");fprintf(stdout,data);}return 0;
}
调试结果:
C语言编写简单的sql数据库相关推荐
- 基于c语言的简单的mysql数据库操作
基于c语言的简单的mysql数据库操作 最近做项目需要利用c语言对mysql进行获取数据的操作,于是我对mysql社区提供的c语言调用mysql的部分api进行了简单封装,这里做下记录,方便以后回顾. ...
- 实用c语言函数源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual Studio ...
- C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc
实验2 用C语言编写简单程序--2.1 基本数据处理 实验2 用C语言编写简单程序 2.1 基本数据处理 [实验目的] (1)掌握算术表达式和赋值表达式的使用. (2)掌握基本输出函数的使用. (3) ...
- c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- 心碎的图案怎么用c语言编出来,教案实验2用c语言编写简单程序.doc
教案实验2用c语言编写简单程序 实验2 用C语言编写简单程序 2.1 基本数据处理1.调试示例 改正下列程序中的错误,求华氏温度100oF对应的摄氏温度?计算公式如下,其中:c 表示摄氏温度,f 表示 ...
- 用C语言编写简单的通讯录(大一课程作业)
用C语言编写简单的通讯录(大一课程作业) 该系统概述: 因本人只学习了C语言的基础部分,所以编写该系统时只使用了一个C文件.存储通讯录信息以txt文件方式保存. 系统设计: 显示主菜单主函数:int ...
- VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件
VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual ...
- 用C语言编写简单的求解对数函数
用C语言编写简单的对数函数 作为一个图像处理芯片公司的工程师,支持不同sensor的曝光策略是一个ISP的基本功能,但是有的sensor曝光策略复杂,还需要加上sensor厂商自己添加的补丁,而ISP ...
最新文章
- docker 错误 A dependency job for docker.service failed. See ‘journalctl -xe‘ for details
- 真香,写代码神器!32寸曲面显示器免费送
- excel表中怎么让隐藏的表格中不粘贴内容-制作autohotkey快捷键
- Http状态行和状态码介绍
- python 颜色_Python可视化|matplotlib07自带颜色条Colormap(三)
- html背景只向x轴扩散,有趣的css—简单的下雨效果2.0版
- 美团点评2020年测试工程师笔试题
- automake 框架_[]GNU_Automake_中文.pdf
- mycat定时向mysql存储数据_【实战演练】Linux操作系统20-MyCat实现Mysql数据库读写分离与自动切换...
- python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列...
- python之路8-内置模块介绍
- solaris系统的crontab定时任务
- 为报复老东家,程序员编码给自己转账553笔,金额超21万元
- 通过 TensorFlow 实现 AI 语音降噪提升 QQ 音视频通话质量
- UnityShader入门精要——运动模糊
- JAVA必背面试题和项目面试通关要点
- 简单图+Havel_Hakimi定理
- 花卡宝藏版2020版
- 达梦数据库的连接(四种方式-亲测可用)达梦数据库的几大小助手工具
- PTA 7-10 黑白三子棋局
热门文章
- 身份证号码验证算法 javascript实现
- [附源码]JAVA+ssm计算机毕业设计电影院购票系统(程序+Lw)
- Python自动化开发-Day4
- 液化气罐油罐车储油罐用凉凉胶隔热底漆 防热防雨
- 基于STM32单片机智能蓝牙PWM温控风扇带定时APP控制
- 从企划到发售,我是如何在四个月内制作出一款好游戏?
- lunix mysql密码正确登录不进去,没有密码却能登进去的解决办法
- zc706编译及qemu启动和使用
- 基于MFC实现电脑录屏小程序
- 排列数 A(n, m) 与组合数 C(n, m) 的求法