文档章节

sqlite简单实例

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


© 著作权归作者所有

共有 人打赏支持
石头哥哥
粉丝 302
博文 203
码字总数 120417
作品 2
渝中
程序员
不会点SQLite,都不好意思说自己是开发的

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

silencezwm
07/03
0
0
sqlite3中BLOB数据类型存储大对象运用示例

1:常用接口 个人比较喜欢sqlite, 使用最方便,唯一的准备工作是下载250K的源;而且作者很热心,有问必答。 以下演示一下使用sqlite的步骤,先创建一个数据库,然后查询其中的内容。2个重要结...

涩女郎
2015/08/26
0
0
解决SQLite database is locked

前些时候,同事在站点服务端使用SQlite存储一些临时数据,但是在多人并发的时候Sqlite会抛出异常:The database file is locked , database is locked,而且这个是在客户生产环境下提示出来的...

会飞的蝌蚪
2014/05/12
0
0
Android:SharedPreferences解析和实现记住用户名

SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存。S...

岑浩源
2012/11/28
0
0
[转载]SQLite 创建、修改、删除表

、数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schema。 在 SQL 语句中,专门有一些语...

mutouzhang
2014/03/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
11
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部