Есть функция получения группой блобовских данных. В моем случае это иконки и их описания.
int Query::multipleSelectBlob(
QString SQLString,
int numBlob,
QList<QByteArray> *ba,
QList<QStringList> *data)
{
if(isConnect()<0)
return ERROR_OPEN_DB;
lastError = "";
QSqlQuery query(db);
if(!query.exec(SQLString))
{
lastError = query.lastError().text();
return ERROR;
}
QSqlRecord rec = query.record();
int count = rec.count();
data->clear();
ba->clear();
int pp = query.numRowsAffected();
//while (query.next())
for(int j = 0; j < pp; j++)
{
if(!query.next())
continue;
data->append(QStringList());
for(int i=0; i < count; i++)
{
if(i == numBlob)
ba->append(query.value(i).toByteArray());
else
data->last().append(query.value(i).toString());
}
}
return ERROR_NO;
}
Вызываю
QList<QByteArray> ba;
QList<QStringList> lst;
SQLString = QString("SELECT imIcon, stName FROM dbo.dsTypes WHERE dbo.dsTypes.biAbstract = 0");
int err = sqlDBLoodsman->multipleSelectBlob(SQLString, &ba, &lst);
if(err<0)
return err;
БД MSSQL 2008 R2. Клиент - винда.
Так вот в таблице возвращаемых данных около 500.
А на выходе из функции я получаю только около 40.
На 40-м шаге
if(!query.next())
continue;
начинает возвращать false и так далее.
Никак не пойму с чем проблема. Если первое поле не blob, а тот же текст - то проблем нет. Все поля грузятся.
Но вот кипу blob-овских полей читать и получать не хочет.
В чем может быть проблема?