文档章节

sqlite简单实例

石头哥哥
 石头哥哥
发布于 2016/02/16 15:29
字数 467
阅读 64
收藏 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;
}


© 著作权归作者所有

石头哥哥

石头哥哥

粉丝 303
博文 203
码字总数 120417
作品 2
广州
程序员
私信 提问
加载中

评论(0)

Sqlit--学习教程(建立数据库表)

SQLite 的 sqlite3 命令被用来创建新的 SQLite 数据库。您不需要任何特殊的权限即可创建一个数据。 语法 sqlite3 命令的基本语法如下: $sqlite3 DatabaseName.db 通常情况下,数据库名称在 ...

osc_8tcnyc1i
2018/05/23
4
0
常用数据库2 sqlite及SQL注入

知识内容: 1.sqlite数据库介绍 2.sqlite数据库操作 3.SQL注入 一、sqlite数据库介绍 1.sqlite数据库 sqlite数据库:轻量级的数据库,一般开发中使用sqlite数据库,上线后将sqlite数据库换成...

osc_jww09jef
2018/06/28
9
0
不会点SQLite,都不好意思说自己是开发的

一、为什么要会点SQLite? SQLite作为一款轻量级的关系型数据库,占用的资源特别少,所以其应用场景也是特别的多。在移动开发中,我们经常会有将数据存储在本地的需求,此时SQLite将是我们最...

silencezwm
2018/07/03
0
0
Android SQLite数据库使用,了解一下

SQLite简介 轻量级 : SQLite数据库是一个轻量级的数据库, 适用于少量数据的CURD; 文件本质 : SQLite数据库支持大部分SQL语法, 允许使用SQL语句操作数据库, 其本质是一个文件, 不需要安装启动...

zkbilian
03/31
0
0
引入 SQLite 数据库在 Rational Functional Tester 中轻松读取测试数据

目前,越来越多的人选择使用 Rational Functional Tester(RFT) 来实现产品的自动化测试。通常情况下,测试数据会存放在数据池中,或者以文本形式存放在外部的文件里(比如资源文件或 XML 文件...

IBMdW
2011/08/01
834
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux中实用但很小众的11个炫酷终端命令

今天给大家分享Linux总结出来的11个炫酷的Linux终端命令大全,通过今天这篇文章将向大家展示一系列的Linux命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。...

osc_50znnx42
20分钟前
5
0
GPRS(Air202) Lua开发: GPIO中断

1.原理图 2.配置GPIO5中断,上拉输入 1.点击按钮进入下降沿中断 2.松开按钮进入上升沿中断 module(...,package.seeall) --固定写法,具体百度lua文件加载(初学者不需要考虑,直接写上这句话即可...

osc_mf7xwvy6
22分钟前
18
0
相机激光标定算法:从理论到实践

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 本文是标定系列解读第三篇,介绍了Camera-Lidar标定,通过对一些基础知识和小细节进行讨论和理论推导,给出了一些可以提升标定精度的...

osc_s2b5kacl
23分钟前
10
0
webpack4.0 把自己总结'吐'的一篇文章

上大学的时候老师讲一门语言,上来的第一节课就是配置各种环境,而通常看到那些脑袋都是一种快要炸的状态🤯。随着后来对Linux的学习之后发现,并没有那么头疼配置的东西(对于命令这么复杂...

osc_mor4smaq
25分钟前
15
0
实现一个“真”的网页

@一个“真”的网页 实现一个真的网页~ 经过了前几次的实验,相信大家已经对网页布局有了初步的了解,那么这一次就让我们来做个“真网页”吧!复制代码 文章展示页是非常非常常见的东西,几...

osc_7ekszy4a
26分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部