[C++] Linux下通过C语言操作SqlLite数据库 →→→→→进入此内容的聊天室

来自 , 2020-08-22, 写在 C++, 查看 110 次.
URL http://www.code666.cn/view/f6a8dd1c
  1. #include <stdio.h>
  2. #include <sqlite3.h>
  3.  
  4. //查询的回调函数声明
  5. int select_callback(void * data, int col_count, char ** col_values, char ** col_Name);
  6.  
  7. int main(int argc, char * argv[])
  8. {
  9.   const char * sSQL1 = "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
  10.   char * pErrMsg = 0;
  11.   int result = 0;
  12.   // 连接数据库
  13.   sqlite3 * db = 0;
  14.   int ret = sqlite3_open("./test.db", &db);
  15.   if( ret != SQLITE_OK ) {
  16.     fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));
  17.     return(1);
  18.   }
  19.   printf("数据库连接成功!\n");
  20.  
  21.   // 执行建表SQL
  22.   sqlite3_exec( db, sSQL1, 0, 0, &pErrMsg );
  23.   if( ret != SQLITE_OK ){
  24.     fprintf(stderr, "SQL error: %s\n", pErrMsg);
  25.     sqlite3_free(pErrMsg);
  26.   }
  27.  
  28.   // 执行插入记录SQL
  29.   result = sqlite3_exec( db, "insert into users values('张三',20,'2011-7-23');", 0, 0, &pErrMsg);
  30.   if(result == SQLITE_OK){
  31.     printf("插入数据成功\n");
  32.   }
  33.   result = sqlite3_exec( db, "insert into users values('李四',20,'2012-9-20');", 0, 0, &pErrMsg);
  34.   if(result == SQLITE_OK){
  35.     printf("插入数据成功\n");
  36.   }
  37.  
  38.   // 查询数据表
  39.   printf("查询数据库内容\n");
  40.   sqlite3_exec( db, "select * from users;", select_callback, 0, &pErrMsg);
  41.  
  42.   // 关闭数据库
  43.   sqlite3_close(db);
  44.   db = 0;
  45.   printf("数据库关闭成功!\n");
  46.  
  47.   return 0;
  48. }
  49.  
  50. int select_callback(void * data, int col_count, char ** col_values, char ** col_Name)
  51. {
  52.   // 每条记录回调一次该函数,有多少条就回调多少次
  53.   int i;
  54.   for( i=0; i < col_count; i++){
  55.     printf( "%s = %s\n", col_Name[i], col_values[i] == 0 ? "NULL" : col_values[i] );
  56.   }
  57.  
  58.   return 0;
  59. }
  60. //cpp/8973

回复 "Linux下通过C语言操作SqlLite数据库"

这儿你可以回复上面这条便签

captcha