C++之sqlite数据库读写

C++之sqlite数据库读写

常用函数

1、sqlite3_open()

用于打开SQLite数据库。该函数接受两个参数:数据库文件名和打开模式。成功打开数据库后,将返回一个sqlite3*对象。

2、sqlite3_close()

用于关闭SQLite数据库。该函数接受一个sqlite3*对象作为参数。

3、sqlite3_exec()

该函数用于执行SQL语句。它接受一个sqlite3*数据库,一个SQL语句字符串和一个回调函数。对于每个从SQL语句返回的记录,回调函数都会被调用。

4、sqlite3_prepare()

该函数用于准备要执行的SQL语句。该函数接受一个sqlite3*数据库,一个SQL语句字符串和一个回调函数。当SQL语句准备好执行时,回调函数会被调用。

5、sqlite3_step()

该函数用于执行已准备好的SQL语句。该函数接受一个sqlite3*数据库和一个已准备好的SQL语句。对于每个从SQL语句返回的记录,回调函数都会被调用。

6、sqlite3_finalize()

该函数用于销毁已准备好的SQL语句。该函数接受一个sqlite3*数据库和一个已准备好的SQL语句。

7、sqlite3_last_insert_rowid()

该函数返回最近一次成功的INSERT语句插入的行的ROWID。该函数接受一个sqlite3*数据库作为参数。

8、sqlite3_changes()

该函数返回自上次事务以来,被数据库中的UPDATE、INSERT和DELETE语句更改的行数。该函数接受一个sqlite3*数据库作为参数。

9、sqlite3_total_changes()

该函数返回自上次事务以来,被数据库中的UPDATE、INSERT和DELETE语句更改的行总数。该函数接受一个sqlite3*数据库作为参数。

10、sqlite3_interrupt()

该函数用于中止正在执行的SQLite操作。该函数接受一个sqlite3*数据库作为参数。

应用例程

cpp 复制代码
#include <stdio.h>  
#include <stdlib.h>  
#include <sqlite3.h>  
  
static int callback(void* NotUsed, int argc, char** argv, char** azColName) {  
  for(int i = 0; i < argc; i++) {  
    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");  
  }  
  return 0;  
}  
  
int main(int argc, char* argv[]) {  
  sqlite3* db;  
  char* zErrMsg = 0;  
  int rc;  
    
  rc = sqlite3_open("test.db", &db);  
    
  if(rc) {  
    fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));  
    exit(0);  
  } else {  
    fprintf(stderr, "Opened database successfully\n");  
  }  
    
  char* sql = "CREATE TABLE Friends(Id INT, Name TEXT);";  
    
  rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);  
    
  if(rc != SQLITE_OK) {  
    fprintf(stderr, "SQL error: %s\n", zErrMsg);  
    sqlite3_free(zErrMsg);  
  } else {  
    fprintf(stderr, "Table created successfully\n");  
  }  
    
  sql = "INSERT INTO Friends(Id, Name) VALUES(1, 'Tom');";  
    
  rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);  
    
  if(rc != SQLITE_OK) {  
    fprintf(stderr, "SQL error: %s\n", zErrMsg);  
    sqlite3_free(zErrMsg);  
  } else {  
    fprintf(stderr, "Records inserted successfully\n");  
  }  
    
  sql = "SELECT * FROM Friends;";  
    
  rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);  
    
  if(rc != SQLITE_OK) {  
    fprintf(stderr, "SQL error: %s\n", zErrMsg);  
    sqlite3_free(zErrMsg);        
  } else {  
    fprintf(stderr, "Select operation performed successfully\n");  
  }  
    
  sqlite3_close(db);  
  return 0;  
}

这个例程演示了如何使用SQLite数据库的C API来执行以下操作:

打开一个SQLite数据库(如果数据库不存在,则创建一个新数据库)。

创建一个表格。

向表格中插入记录。

查询表格中的记录,并在控制台上显示每条记录的每个字段的值。

关闭数据库连接。

相关推荐
墨染千千秋几秒前
C++输入输出全解
c++
云qq3 分钟前
C++ 原子操作
开发语言·c++·算法
A charmer7 分钟前
第一章:基础语法破冰|从 C++ 无缝切换 OC 语法
c++·objective-c
fffzd16 分钟前
C++入门(一)
开发语言·c++·命名空间·输入输出·缺省参数
重生之小比特29 分钟前
【MySQL 数据库】表的操作
数据库·mysql
草莓熊Lotso34 分钟前
Python 入门必吃透:函数、列表与元组核心用法(附实战案例)
大数据·服务器·开发语言·c++·人工智能·python·qt
雷工笔记2 小时前
MES 系统 设备保养管理模块详细设计方案
运维·数据库
晚风_END4 小时前
Linux|操作系统|zfs文件系统的使用详解
linux·运维·服务器·数据库·postgresql·性能优化·宽度优先
AI进化营-智能译站5 小时前
ROS2 C++开发系列17-多线程驱动多传感器|chrono高精度计时实现机器人同步控制
java·c++·ai·机器人
墨染千千秋9 小时前
C++函数的使用以及主函数
c++