当前位置: 代码迷 >> QT开发 >> QSqlQuery 执行完 SELECT 语句后,调用.size函数总是返回-1…找不到原因
  详细解决方案

QSqlQuery 执行完 SELECT 语句后,调用.size函数总是返回-1…找不到原因

热度:162   发布时间:2016-04-25 03:48:01.0
QSqlQuery 执行完 SELECT 语句后,调用.size函数总是返回-1……找不到原因,求助
代码如下:

   bool OpenTempSeriesDB( QString strDBFile)
  {
      QSqlDatabase pTempDB = QSqlDatabase::addDatabase("QSQLITE", "SeriDatabase");

      pTempDB.setHostName("localhost");
      pTempDB.setDatabaseName( strDBFile );  (strDBFile是指定的数据库文件)

      if ( !pTempDB.open() )
      {
          qDebug()<<"连接数据库失败,请检查数据库设置!";
          return false;
      }

      return true;
  }


   if( !OpenTempSeriesDB(strDBFile, bUseDefaultSeriesDB) )
    {
        return false;
    }

    // 数据库操作
    QSqlQuery RS( QSqlDatabase::database( "SeriDatabase" ) );

    RS.exec("SELECT COUNT(UID) FROM Tables WHERE UID = '123456'" )

    RS.size() == -1  ( 总是返回 -1 , 找不到原因啊  )



QSqlQuery .size()返回-1

------解决方案--------------------
是-1.你往后挪一个位置就行了。执行RS.next();这样再使用就行了
------解决方案--------------------
给你贴段代码上来
int DBAdvertise::getAdvertiseCount()
{
QString sql;
QSqlQuery query(DB::m_db);
bool result;
int count = 0;

QString time = QDate::currentDate().toString("yyyy-MM-dd");

sql.append("SELECT count(*) FROM ");
sql.append(ADVERTISE_TABLE_NAME); 
sql.append(" WHERE time=");
sql.append(DB::addYinHao(time));
result = query.exec(sql);

query.next();
count = query.value(0).toInt();

return count;
  相关解决方案