Привет!
Использую qt-шный драйвер qodbc3 для работы с firebird-ом 1.5.2.4731, (firebird odbc driver 1.2.0.69) и наткнулся на следующее:
QSqlQuery l_sq("select anything from mytable;");
while(l_sq.next())
{
doSomething(l_sq.value(0).toString());
}
Результатом такой выборки будет полный набор записей из mytable плюс первая сторка удвоена, т.е. первая строка, первая строка, вторая, третья ... последняя.
Если я вставлю l_sq.first() после создания QSqlQuery:
QSqlQuery l_sq("select anything from mytable;");
l_sq.first()
while(l_sq.next())
...
то результат будет правильным ... но data-aware контролы все равно будет показывать данные неправильно: QDataTable будет показывать правильное количество строк, удвоит первую и не покажет последнюю.
Я пробовал другую СУБД через тот же qodbc3 и такой проблемы не наблюдал, думаю, это специфика связки qt+firebird.
Кто в курсе, как это побороть, отпишитесь, пожалуйста.