[C++] sqlite3_get_table 的使用

不知道为啥 sqlite3 里面使用 "UPDATE" 更新数据,更新失败也不报错,所以就想绕过去。先查一下字段存在不存在,然后再update

cpp 复制代码
std::string selectsql =  "SELECT COUNT(*) FROM table_name WHERE some_condition";
char** dbResult;
char* errmsg = NULL;        //用来存储错误信息字符串
int nRow = 0, nColumn = 0;  // nRow  查找出的总行数,nColumn 存储列
int ret = sqlite3_get_table(db, selectsql.c_str(), &dbResult, &nRow, &nColumn, &errmsg);
if (SQLITE_OK != ret || nRow == 0)
{

    sqlite3_free_table(dbResult);
   // do_something
}
 sqlite3_free_table(dbResult);
// do_something


std::string sql = "UPDATE table_name SET item1=? \
    WHERE item2=? and item3=? and item4=?;  ";

sqlite3_prepare_v2(db, sql.c_str(), -1, &statement, nullptr);
int index = 0;
QByteArray inByteArray
sqliteBind(statement, index, inByteArray.data(), inByteArray.length());  
sqliteBind(statement, index, "...");         
sqliteBind(statement, index, "...");  
sqliteBind(statement, index, "...");    
相关推荐
大拇指的约定2 分钟前
数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(三),单表查询
数据库·mysql·oracle
小码农<^_^>3 分钟前
c++继承(下)
开发语言·c++
阳光阿盖尔17 分钟前
redis——哨兵机制
数据库·redis·缓存·主从复制·哨兵
小小娥子17 分钟前
【Redis】Hash类型的常用命令
数据库·spring boot·redis
盒马盒马18 分钟前
Redis:cpp.redis++通用接口
数据库·c++·redis
barbyQAQ34 分钟前
Qt源码阅读——事件循环
开发语言·数据库·qt
银氨溶液37 分钟前
MySql数据引擎InnoDB引起的锁问题
数据库·mysql·面试·求职
无夜_1 小时前
Prototype(原型模式)
开发语言·c++
IvorySQL1 小时前
济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理
xml·数据库·sql·postgresql·oracle·开源
刘好念2 小时前
[图形学]smallpt代码详解(1)
c++·计算机图形学