c++ sqlite操作,c语言操作sqlite

  c++ sqlite操作,c语言操作sqlite

  一.导言

  SQLite是一个基于文件的轻量级数据库,但是功能相当强大,速度也相当快,对于小型数据库的应用开发来说绝对够用。用起来也很方便。从下面的介绍可以看出,用起来真的很简单。

  二、官网

  Www.sqlite.org,sqlite的官方网站,在这里你可以下载最新版本的Sqlite。

  第三,辅助工具和工具

  Sqlite数据库的管理工具有SQLiteManager、SqliteAdmin等。

  SqliteManager只有英文版,但是功能强大。一个问题是它不支持ANSI字符集的汉字显示。其自带的帮助文档有详细的SQL语句介绍,对于不熟悉Sql语句的人来说非常方便。而且它的很多操作都有自动的SQL语句提示,对于不经常使用数据库的人来说也很有用。

  SqliteAdmin有绿色中文版,功能比SqliteManager略少。对于熟悉Sql语句的人来说,这个版本就足够了。

  四。使用前的碳/碳准备

  您可以通过将sqlite3.h和sqlite3.c直接添加到您自己的C/C项目中来使用sqlite3。

  第五,打开和关闭数据库

  Sqlite支持UTF-8和UTF-16,但不支持C/C程序中最常用的ANSI。因此,如果数据库路径包含汉字,则需要将其转换为相应的字符格式。

  1.以UTF-8模式打开

  2.以UTF-16模式打开

  要在UTF-16模式下打开数据库,只需将打开数据库的语句改为 SQLite3 _ Open16 (L c: \ \ abc.db ,db)。

  但一般情况下,强烈不建议使用UTF-16打开数据库。根据我的测试,我发现如果您以这种方式打开数据库,当您稍后创建数据表时,如果其中一项是TEXT类型的。那么数据表的数据内容会被强制确定为UTF-16。换句话说,您插入的任何数据都将被转换为UTF-16并存储在数据库中。执行SQL的语句是UTF-8格式的,所以当你取出的数据和存储的数据不一致时,对用户来说显然是一场灾难。

  不及物动词执行SQL语句

  SQL语句可以调用sqlite3_exec函数。一般来说,如果不需要返回的数据和错误信息,执行方式如下:

  创建表[MyTable] ([ID]整数主键不为空,[MyText]文本不为空,[MyDate]日期不为空,[MyTime]时间不为空,[MyFloat]浮点不为空)

  2.插入记录

  以下是插入记录的示例SQL语句。

  到我的表(我的文本,我的日期,我的时间,我的浮点)值(-这是一个漫长的工作方式!, 2012-03-23, 9:00:00, 1000)

  3.更新记录

  以下是更新几条记录的示例SQL语句。

  更新我的表集MyText=真的吗?,MyTime=10:00:00 其中ID=0,ID=20

  4.删除记录

  以下是删除几条记录的SQL语句示例。

  5.分批操作

  如果要执行大量操作,比如插入10000条数据,那么逐个执行SQL语句需要很长时间。按事务批量处理可以大大提高运算速度(我实验了1000条记录,速度提高了500多倍)。

  以下是批量插入10,000条数据的代码示例:

  //插入条带数据(Begin和Commit之间的批处理操作可以大大提高效率)

  result=sqlite3_exec(db, BEGIN, 0, 0, 0);

  for(int I=0;我10000;我)

  {

  //插入一段数据

  result=sqlite3_exec(db,

  在我的表格中插入(我的文本,我的日期,我的时间,我的浮点)值(-这是一条很长的路要走!, 2012-03-23, 9:00:00, 1000);

  0, 0, 0);

  }

  result=sqlite3_exec(db, COMMIT, 0, 0, 0);

  七、查询并返回结果。

  1.形式上的回报。

  以下是以表单形式获取数据的示例代码:

  int nRow,nCol

  sqlite3_get_table(db, SELECT * FROM my table LIMIT 1000 OFFSET 2000 ,pazResult,nRow,nCol,0);

  //nRow表示有多少行。

  //nCol指示有多少列。

  //可以从pazResult解析所有记录,记录以字符串形式返回。

  //第n列的名称存储在pazResult[n]中

  //第n行第m列的数据存储方式与paszResult[(m 1) * nCol m]相同

  //使用完记录后,一定要释放为记录分配的内存。

  sqlite3 _ free _ table(Paz result);

  上面的查询代码还演示了如何查询指定位置的记录数。当记录集非常大时,这种查询方法非常有用。

  2.以回调的形式返回。

  下面的代码显示了如何获取查询语句返回的记录。

  首先,你需要如下定义一个回调函数(参数的含义将在后面讨论):

  int Result(void* pContext,int nCol,char** azValue,char * * az name);

  然后调用sqlite函数执行查询语句,在回调函数列输入上面定义的回调函数:

  sqlite3_exec(db, SELECT * FROM my table LIMIT 10 OFFSET 20 ,Result,0,0);

  SQL语句执行时,每次返回一条记录就会触发上述回调函数。在这个回调函数的实现中,可以获得查询结果。

  在上面的结果函数中,每个参数的含义如下:

  该参数是调用sqlite3_exec函数输入的第四个参数。它通常用作环境变量来指示当前执行代码的主题。我在代码中忽略了这个参数,但在正式使用中通常不会被忽略。

  八。访问二进制数据

  要访问二进制数据,需要sqlite3_bind_blob之类的函数。具体用法参见这些函数的声明。作为一个轻量级数据库,我一般不会用它来存储二进制数据,这里就不详细描述了。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: