C++ sqlite,c语言操作sqlite

  C++ sqlite,c语言操作sqlite

  C/C中SQLite的常用功能-简单日志-网易博客

  C/C中SQLite的常用函数

  010-06-03 15: 43: 06 分类:

  C/C的SQLite

  标签:

  字号、大、中、小订阅

  1.打开数据库:

  解释:要打开数据库,文件名不必存在。如果这个文件不存在,sqlite会自动创建它。第一个参数是指文件名,第二个参数是定义的sqlite3 **结构指针(key数据结构)。你不必担心这个结构的底层细节。

  int sqlite3_open(

  const char *filename,/*数据库文件名(UTF-8) */

  sqlite3 **ppDb /* OUT: SQLite db句柄*/

  );

  返回值:表示操作是否正确(SQLITE_OK操作正常)

  2.关闭数据库:

  注意:如果用sqlite3_open打开数据库,不要忘了在最后用这个函数关闭数据库。

  int sqlite3 _ close(sqlite3 *);//参数是刚才的结构,也就是数据库句柄

  //注意,在这个错误之后,可以使用sqlite3_errmsg(db)来获取错误代码。

  3.执行SQL语句:

  注意:该函数的作用是执行一条或多条SQL语句,带“;”SQL语句之间。数字分开。建议在执行一条或多条Sql语句时指定第三个参数回调函数,执行Sql的详细过程可以在回调函数中获取。如果所有的SQL都完成了,它应该返回0,否则,执行没有完全成功。第五个参数:如果执行失败(不返回0),可以查看第五个解释的值。查看详细的错误信息。

  int sqlite3_exec(

  Sqlite3*,/*打开数据库句柄*/

  Const char *sql,/*要执行的sql语句*/

  Sqlite_callback,/*回调函数*/

  Void *,/*传递给回调函数的参数*/

  Char **errmsg /*保存错误信息,注意使用sqlite3_free(errmsg)释放资源*/

  );

  通常sqlite3_callback和后面的void*都可以用NULL填充,表示不需要回调。例如,如果你做插入、更新和删除操作,就没有必要使用回调。当它作为select使用时,就需要使用callback,因为sqlite3是找出数据的,而且要告诉你通过callback找到了什么数据。

  4.exec的回调

  typedef int(* sqlite3 _ callback)(void * data,int col_count,char** col_value,char * * col _ name);

  注意:您的回调函数必须定义为上述函数的类型。

  //select_callback是select的回调函数。

  //@data:是sqlite3_exec()中的第四个参数

  //@col_count:选定列的数量

  //@col_values:每条记录的每列的值

  //@col_Name:每列的列名

  静态int select_callback(void * data,int col_count,char ** col_values,char ** col_Name)

  #包含./sqlite3 _ lib/sqlite3 . h //头文件

  # pragma注释(lib,./sqlite3 _ lib/sqlite3 . lib )//lib静态库

  //select_callback是select的回调函数。

  //@data:是sqlite3_exec()中的第四个参数

  //@col_count:选定列的数量

  //@col_values:每条记录的每列的值

  //@col_Name:每列的列名

  静态int select _ callback(void * not used,int argc,char ** values,char ** colName)

  //对每条记录回调该函数一次,有多少次回调多少次。

  int I;

  for(I=0;i argc我)

  printf( %s=%s\n ,colName[i],values[i]==0? NUL :值[I]);

  返回0;

  int main(int argc,char * argv[])

  const char * sSQL1=创建表用户(userid varchar(20)主键,年龄整数,生日日期时间);;

  char * perr msg=0;

  //执行插入记录SQL

  Sqlite3 _ exec (db,插入用户值(张三,20, 2001年5月4日);0,0,perr msg);

  Sqlite3 _ exec (db,插入用户值(李四,20, 1970年5月4日);0,0,perr msg);

  返回0;

  }5.取当前插入位置:

  long long int sqlite3 _ last _ insert _ rowid(sqlite3 *);

  功能:回到上次插入的位置。从1开始,sqlite3*将为您打开数据库以获取句柄。

  6.非回调选择查询:

  函数:查询一次Sql并返回一个记录集。

  int sqlite3_get_table(

  Sqlite3*,/*打开数据库句柄*/

  Const char *sql,/*要执行的sql语句*/

  Char ***resultp,/*保存指向返回记录集的指针*/

  Int *nrow,/*返回记录数(多少行)*/

  Int *ncolumn,/*返回字段数(有多少列)*/

  Char **errmsg /*返回错误消息*/

  )

  注意:第三个参数是查询结果,它是一个一维数组,内存布局为(N行M列结果)。那么数组的0到m-1行是列名,M到2*m-1是记录集中的第一行数据,以后依次类推;

  #包含./sqlite3 _ lib/sqlite3 . h //头文件

  # pragma注释(lib,./sqlite3 _ lib/sqlite3 . lib )//lib静态库

  int main( int,char **)

  sqlite3 * db

  int结果;

  char * errmsg=NULL

  char * * dbResult

  int nRow,nColumn

  int i,j;

  int索引;

  //打开数据库

  result=sqlite3_open(。/test.db ,db);

  如果(结果!=SQLITE_OK)

  return-1;

  //数据库操作代码

  //假设之前已经创建了MyTable_1表。

  //开始查询。传入的dbResult已经是char**。这里添加了另一个地址获取操作符,传递的操作符变成了char***

  result=sqlite3_get_table( db, select * from users、dbResult、nRow、nColumn、errmsg);

  if( SQLITE_OK==result)

  //查询成功

  Printf(找到%d条记录,ncolumn=%d \n ,nRow,n column);

  for(I=1;i=nRow我)

  Printf(记录%d \n ,I);

  for(j=0;j n列;j)

  Printf(字段名:%s字段值:% s \ n ,dbresult [j],dbresult[I * n column j]);

  //dbResult的字段值是连续的,从第0个索引到nColumn-1个索引是字段名,从n column索引开始,

  //后跟字段值,它以平面形式表示二维表格(传统的行和列表示法)。

  printf(-\ n );

  //这里不管数据库查询成功与否,都会发布char**的查询结果,使用sqlite提供的函数来发布。

  sqlite3 _ free _ table(dbResult);

  //关闭数据库

  sqlite3 _ close(db);

  返回0;

  }7.发布查询结果:

  函数:释放当前查询记录集占用的内存。

  void sqlite3 _ free _ table(char * * result);

郑重声明:本文由网友发布,不代表盛行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算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: