文档章节

sqlite简单实例

石头哥哥
 石头哥哥
发布于 2016/02/16 15:29
字数 467
阅读 33
收藏 0
点赞 1
评论 0
#include "stdlib.h"
#include "stdio.h"

#include "sqlite3.h"

int main()
{
 
   charcSql[1024] = {0};
    sqlite3*pSql = NULL;
    char *pError= NULL;
    int i = 0, j= 0;
    char**ppTableData = NULL;
    int nRow =0, nColumn = 0;
    int pos =0;

   //打开数据库
   sqlite3_open("server.db",&pSql);

   //如果userInfo表不存在,则创建一个。
   sprintf(cSql, "create table if not existsuserInfo"
      "("
      "cUserName varchar(32) not null primarykey,"//用户名 关键字 不能为空
      "cUserPwd varchar(32) not null,"//用户密码 不能为空
      "nUserPower interger default 1,"//用户权限 默认为1
      "cCreateTime varchar(32)default(datetime('now','localtime')),"//创建时间 默认为当前本地时间
      "cModifyTime varchar(32)default(datetime('now','localtime')),"//最后一次修改时间
      "cLoginTime varchar(32)default(datetime('now','localtime')),"//最后一次登录时间
      "cDescribe varchar(256) default('nodescribe')"//用户描述信息
      ")");

   if(sqlite3_exec(pSql, cSql, 0, 0,&pError) != SQLITE_OK)
    {
      printf("(%s)\r\n", pError);
    }

    //删除一项
   sprintf(cSql, "delete from userInfo where cUserName='%s'","admin");
   if(sqlite3_exec(pSql, cSql, 0, 0, &pError) !=SQLITE_OK)
    {
      printf("(%s)\r\n", pError);
    }

    //插入一项UserName = admin, cUserPwd = password
   sprintf(cSql, "insert into userInfo (cUserName,cUserPwd) values ('%s', '%s')", "admin", "password");
   if(sqlite3_exec(pSql, cSql, 0, 0,&pError) != SQLITE_OK)
    {
      printf("(%s)\r\n", pError);
    }
   //修改一项
   sprintf(cSql, "update userInfo set cUserPwd='%s', nUserPower=%d,cDescribe='%s' where cUserName='%s'", "88888888", 2, "super user","admin");
   if(sqlite3_exec(pSql, cSql, 0, 0, &pError) !=SQLITE_OK)
    {
      printf("(%s)\r\n", pError);
       return-1;
    }

   //查找所有项,并显示
   sprintf(cSql, "select * from userInfo");
   if(sqlite3_exec(pSql, cSql, 0, 0,&pError) != SQLITE_OK)
    {
      printf("(%s)\r\n", pError);
    }
    else
    {
     //获取选择的项目
      sqlite3_get_table(pSql, cSql,&ppTableData, &nRow,&nColumn, &pError);
      printf("nRow  = %d, nColumn = %d\r\n", nRow, nColumn);
      pos = nColumn;
      for(i = 0;i < nRow;i++)
      {
         for(j = 0;j < nColumn;j++)
         {
            printf("i %d, j %d, value = %s\r\n", i, j,ppTableData[pos++]);
         }
      }
      //释放空间
      sqlite3_free_table(ppTableData);
    }

   //查找cUserName = admin,cUserPwd = password的项
   sprintf(cSql, "select * from userInfo wherecUserName='admin' and cUserPwd='password'");
   if(sqlite3_exec(pSql, cSql, 0, 0,&pError) != SQLITE_OK)
    {
      printf("(%s)\r\n", pError);
    }
    else
    {
      sqlite3_get_table(pSql, cSql,&ppTableData, &nRow,&nColumn, &pError);
      if(nRow <= 0)
      {
         printf("no find cUserName='admin' andcUserPwd='password'\r\n");
      }
      else
      {
         printf("find success\r\n");
         pos = nColumn;
         for(i = 0;i < nRow;i++)
         {
            for(j = 0;j < nColumn;j++)
            {
               printf("i %d, j %d, value = %s\r\n", i, j,ppTableData[pos++]);
            }
         }
      }
      sqlite3_free_table(ppTableData);
    }

   //关闭数据库
   sqlite3_close(pSql);

    return0;
}


© 著作权归作者所有

共有 人打赏支持
石头哥哥
粉丝 300
博文 188
码字总数 120786
作品 2
重庆
程序员
【防衰老教程】-windows环境下安装SQLite

什么是 SQLite? SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。...

Weijue ⋅ 05/09 ⋅ 0

安卓应用安全指南 4.5.3 使用 SQLite 高级话题

安卓应用安全指南 4.5.3 使用 SQLite 高级话题 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 4.5.3.1 在 SQL 语句的断言中使用通配符...

apachecn_飞龙 ⋅ 03/22 ⋅ 0

【Kotlin For Android】(三): Anko 库

一、简介 Github地址 是一个使 Android应用程序 开发更快,更容易的库。它使你的代码变得简洁易读,并让您忘记 的粗糙边缘。 Anko 由几部分组成: :一个轻量级的库,里面充满了,对话框,日...

Agnes2017 ⋅ 04/27 ⋅ 0

python中的SQLite数据库

python中的SQLite数据库 Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便...

幸运券发放 ⋅ 05/03 ⋅ 0

Node.js 的 SQLite 教程

在本教程中,我将演示如何结合sqlite3 Node.js驱动程序在Node.js环境中使用SQLite。 对于那些不熟悉SQLite的人来说,它是一个简单的单文件关系数据库,在智能设备,嵌入式系统甚至小型Web应用...

oschina ⋅ 05/31 ⋅ 0

Android_6.数据存储3_SQLite存储之创建数据库

本文是以Android Studio为开发工具,<> 为学习指导书籍的学习记录 6.4 SQLite数据 SQLite用于存储大量复杂的关系型数据,是内置在Android系统的一种轻量级的关系型数据库,它有速度快,占用资...

橄榄工作室 ⋅ 05/26 ⋅ 0

C语言实现的CGI,完成了留言板功能

地址:https://github.com/zhouweiit/cgi 基于ngnix+spawn_cgi+fastcgi作为服务器,使用C语言编写的cgi,实现了简单的留言板功能; 项目结构简介: 1.conf主要包含了nginx与fastcig的配置 2....

zhouweiit_ ⋅ 05/09 ⋅ 0

写一个“特殊”的查询构造器 - (一、程序结构,基础封装)

程序的结构 本篇开始,正式进入编码实践中。首先,简单的规划下程序的结构。 如上一篇所说的,我们需要一个基类 PDODriver 用来封装 PDO 的一些公用的方法,Mysql 等每个数据库都新建一个类 ...

MrQ被抢注了 ⋅ 05/11 ⋅ 0

安卓应用安全指南 4.5.1 使用 SQLite 示例代码

安卓应用安全指南 4.5.1 使用 SQLite 示例代码 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 4.5.1.1 创建/操作数据库 在 Android ...

apachecn_飞龙 ⋅ 03/22 ⋅ 0

SQLite增删改查小程序,运行报错,onClick 报错,不知道是哪里出现问题

写了一个简单得SQLite增删改查小程序,运行报错,检查了多遍,没检查出来。总是报错。报错如下 我的程序:ativity_main.xml MainActivity.java PersonDao.java PersonSQLiteOpenHelper.java...

小欢的 ⋅ 05/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 44分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部