Read data from DB using sqlite3

    char *errmsg=nullptr;//报错信息
    char **pResult=nullptr;//查询结果的二位数组
    int nColnm(0);//每条结果包含多少数据
    int nRow(0);//查询结果条数
    sqlite3 *db=nullptr;//数据库
    int ret=sqlite3_open(m_DBpath.c_str(),&db);//打开db,获取db句柄
    if(ret==SQLITE_OK)
    {
    
    
        string sql="select * from Label where ROI_Info_ID = '"+to_string(mROI_Info_ID)+"'";
        ret=sqlite3_get_table(db,sql.c_str(),&pResult,&nRow,&nColnm,&errmsg);//执行sql语句
        if(ret==SQLITE_OK)
        {
    
    
           for (int i=1;i<=nRow;i++)
            {
    
      
                if(nColnm>3)//越界判断
                {
    
       
                    //如果要提取第r行、第n列数据:pResult[r * nColnm +n -1]
                    m_LabelParametersInfo.ID=pResult[nColnm*i];//第i行第一列的数据
                    m_LabelParametersInfo.ROI_Info_ID=pResult[nColnm*i+1];
                    m_LabelParametersInfo.GroupIndex=pResult[nColnm*i+2];
                 }
            }
       }       
        else
        {
    
    
            QString tempStr=QString("%1-->ret:%2").arg(QString::fromStdString(sql)).arg(ret);
            qDebug()<<tempStr;
        }
        if(pResult!=nullptr)
        {
    
    
            sqlite3_free_table(pResult);
            pResult=nullptr;
        }
        if(errmsg!=nullptr)
        {
    
    
            sqlite3_free(errmsg);
            errmsg=nullptr;
        }
    }
    
    sqlite3_close(db);

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324081657&siteId=291194637