1.需要下载的文件      http://pan.baidu.com/s/1c06NpzM

2.执行文件shell的编译

3.在c++中如何使用

  1. #include <stdio.h>
  2. #include <sqlite3.h>
  3.  
  4. static int _sql_callback(void *notused, int argc, char **argv, char **szColName)
  5. {
  6. int i = ;
  7.  
  8. printf("notused:0x%x, argc:%d\n", notused, argc);
  9. for (i = ; i < argc; i++)
  10. {
  11. printf("%s = %s\n", szColName[i], argv[i] == ? "NULL" : argv[i]);
  12. }
  13. printf("\n");
  14.  
  15. return ;
  16. }
  17.  
  18. /*
  19. *
  20. */
  21. int main(int argc, char** argv)
  22. {
  23. const char *sSQL1 = "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
  24. const char *sSQL2 = "insert into users values('wang', 20, '1989-5-4');";
  25. const char *sSQL3 = "select * from users;";
  26.  
  27. sqlite3 *db = ;
  28. char *pErrMsg = ;
  29. int ret = ;
  30.  
  31. //连接数据库
  32. ret = sqlite3_open("./test.db", &db);
  33. if (ret != SQLITE_OK)
  34. {
  35. fprintf(stderr, "无法打开数据库:%s\n", sqlite3_errmsg(db));
  36. sqlite3_close(db);
  37. return ;
  38. }
  39. printf("数据库连接成功\n");
  40.  
  41. //执行建表SQL
  42. ret = sqlite3_exec(db, sSQL1, _sql_callback, , &pErrMsg);
  43. if (ret != SQLITE_OK)
  44. {
  45. fprintf(stderr, "SQL create error: %s\n", pErrMsg);
  46. sqlite3_free(pErrMsg); //这个要的哦,要不然会内存泄露的哦!!!
  47. sqlite3_close(db);
  48. return ;
  49. }
  50. printf("数据库建表成功!!\n");
  51.  
  52. //执行插入数据
  53. ret = sqlite3_exec(db, sSQL2, _sql_callback, , &pErrMsg);
  54. if (ret != SQLITE_OK)
  55. {
  56. fprintf(stderr, "SQL insert error: %s\n", pErrMsg);
  57. sqlite3_free(pErrMsg); //这个要的哦,要不然会内存泄露的哦!!!
  58. sqlite3_close(db);
  59. return ;
  60. }
  61. printf("数据库插入数据成功!\n");
  62.  
  63. //执行查询操作
  64. ret = sqlite3_exec(db, sSQL3, _sql_callback, , &pErrMsg);
  65. if (ret != SQLITE_OK)
  66. {
  67. fprintf(stderr, "SQL error: %s\n", pErrMsg);
  68. sqlite3_free(pErrMsg);
  69. sqlite3_close(db);
  70. return ;
  71. }
  72. printf("数据库查询成功!!\n");
  73.  
  74. //关闭数据库
  75. sqlite3_close(db);
  76. db = ;
  77.  
  78. return ;
  79. }

http://blog.csdn.net/wzzfeitian/article/details/7993686

sqlite在c++中的使用方法的更多相关文章

  1. 【SQLite】 C#中操作SQlite

    简介 SQLite是轻量级数据库,具体的介绍请参考官网(SQLite官网).在WinForm的项目中需要采用独立的数据库访问,可在断网单机上使用,所以选择了SQLite! 使用 主要针对C#项目(Wi ...

  2. Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法

    Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法 2018/11/06 Chenxin 资料说明 Django基础入 ...

  3. 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数

    [问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...

  4. java 执行 jar 包中的 main 方法

    java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多 ...

  5. 为什么不能在init和dealloc函数中使用accessor方法

    前言 为什么不要在init和dealloc方法中调用getter和setter:Apple在Mac与iOS中关于内存管理的开发文档中,有一节的题目为:"Don'tUse Accessor M ...

  6. C#中DataTable中的Compute方法使用收集

    原文: C#中DataTable中的Compute方法使用收集 Compute函数的参数就两个:Expression,和Filter. Expresstion是计算表达式,关于Expression的详 ...

  7. C#中的扩展方法

    扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 以上是msdn官网对扩展方 ...

  8. C#中的匿名方法

    C#中的匿名方法是在C#2.0引入的,它终结了C#2.0之前版本声明委托的唯一方法是使用命名方法的时代.虽然在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方 ...

  9. Java中是否可以调用一个类中的main方法?

    前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ...

随机推荐

  1. NSBundle 类

    NSBundle NSBundle继承于NSObject,NSBundle是一个程序包,其中包含了程序会使用的资源(图像,声音,编辑好的代码,nib文件). 一. 初始化NSBundle + (ins ...

  2. Spark学习计划

    本文档综合现在市面上的各类spark书籍,概括spark技术核心,"要事第一"原则,只抓核心,才能领悟实质. spark核心分类: 1.环境配置相关(编译.搭建.配置.启动脚本) ...

  3. 9、Khala实现0.01版QQ

    这次来个有界面的. 登录界面: 主界面: 1.服务端开发: 只需创建一个类ChatType(./examples/HelloKhala/src/ChatType.cpp),在该类型中,核心为创建的两个 ...

  4. Delphi线程同步

    总结一下Windows常用的几种线程同步技术. 1.Critical Sections(临界段),源代码中如果有不能由两个或两个以上线程同时执行的部分,可以用临界段来使这部分的代码执行串行化.它只能在 ...

  5. MySql学习之数据库管理

    一步一步学习mysql数据,首先是mysql数据的管理操作. 1. 创建数据库 命令格式:create database [if not exists] database_name. 实际的使用过程中 ...

  6. Android中对手机文件进行读写

    参考张泽华视频 (一)读写手机内存卡中的文件 对手机中的文件进行读写操作,或者新增一个文件时,可直接使用openFileOutput  /  openFileInput 得到文件的输出.输入流. Fi ...

  7. django获取某一个字段的列表,values/values_list/flat

    class Building(models.Model): corporation = models.ForeignKey('company.Corporation', verbose_name=u' ...

  8. 手把手教你学习FPGA系列视频教程_救护车鸣笛声

    本套教程主要面对FPGA初学者,本次DIY活动不仅让初学者掌握FPGA硬件电路设计以及焊接方面的知识,更重要的是让初学者学习硬件描述语言 (VerilogHDL)描述数字电路,以及Quartus II ...

  9. ubuntu14.04 安装搜狗输入法

    (1)下载链接 http://pinyin.sogou.com/linux/ (2)清除fcitx $sudo apt-get purge fcitx* (3)使用deb安装工具gdebi,这个工具能 ...

  10. WebSocket 简介

    在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API.WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术.这个新的API提供了一个方法 ...