[Qt-interest] mqsql query terminating at 100th result

Andre Somers andre at familiesomers.nl
Tue Feb 2 17:38:23 CET 2010


Robert Wood wrote:
> It seems to be something purely to do with my primary key.
>
> I've tried this QSqlQueryModel after hours of digging:
>
> QSqlQueryModel model;
> 	model.setQuery("SELECT * FROM " + ui->tablesComboBox->currentText());
>
>
> rows = model.rowCount();
> ui->tableWidget->setRowCount(rows);
> int idNumber;
> for (j=0;j<rows;j++)
> 	{
> 	idNumber = model.data(model.index(j, 0)).toInt();
> 	queryString = QString::number(idNumber, 10);
> 	QTableWidgetItem *qTItem = new QTableWidgetItem;
> 	qTItem->setText(queryString);
> 	ui->tableWidget->setItem(j,0,qTItem);
> 	}
>
> The problem is that, again, I get back the correct number of rows, I 
> make my Qt table as long as the sql table, but once I get to the 100th 
> member of the sql table, the idNumber returned is 0! Also, on one of my 
> large tables there is something weird going on where the 29th member has 
>   a primary key of 667 and this returns 0. So it definitely seems to be 
> the return value of the primary key only being accepted when it's less 
> than 100 which seems crazy.
>
> As the primary keys are so important in linking to other tables, I find 
> it hard to believe this is a bug, but after almost three days on this, I 
> just can't see what on earth is going on.
>
> Has no-one else come across this? Am I going about it on the wrong way 
> still? Is it possible that this really is a bug?
>
> Really would appreciate some help on this!
>   
I admire your persiverence.
Yes, it is certainly possible that there is a bug. I can't test it, but 
I had my own share of problems with the QODBC database driver once, 
where a double field was read incorrectly. It would fail on numbers 
smaller than 1, which happened to occur rather frequently. I had to hack 
around it by multiplying with a large number in my query, read the data, 
and devide the number again from code. Very ugly, I know, but the bug is 
really there.

I know this particular example does not help you with your problem, but 
it may support your in your idea that your own code may not be the 
culprit. Perhaps it is time to try to debug the Qt code itself. Also, I 
recommend you try to contact Bill King. He is active on this list 
occasionally, and he seems to be working on the Qt SQL module. Perhaps 
the "Send a message" button on this page would work: 
http://gitorious.org/~billking

André





More information about the Qt-interest-old mailing list