Добрый день.
Есть удаленный сервак: MS SQL Server 2008
Мой клиент на QT 4.7.4, подключение к БД через ODBC
В процессе работы есть задача заполнить комбик значениями из справочника ( всего порядка 1200 значений) заполнение идет так:
void ComboQuery::setQuery( const QString &query )
{
_combo->clear();
_queryStr = query;
_maxLenght = 0;
_combo->setStyleSheet( "background: yellow" );
for( int i = 0; i < _emptyRows; ++i)
_combo->addItem( "" );
if( _query.exec( _queryStr ) )
while( _query.next() )
{
QString txt = _query.value( _showCol ).toString().trimmed();
QFontMetrics fMetrics = _combo->fontMetrics();
int width = fMetrics.width( txt );
if( _maxLenght < width )
_maxLenght = width;
_combo->addItem( txt );
}
else
QMessageBox::critical( 0, tr( "Ошибка запроса к базе" ), tr( "Не удалось заполнить комбик" ) );
}
Трабла в том что на каждый _query.next() оно долбится за данными на удаленный сервак, что в результате выливается в 3х минутное ожидание заполнения комбика. Как бы заставить его получить результат select-а сразу целиком и раздербанить его уже на клиенте? ( Этот же запрос из под менеджмент студии выполняется за 1сек )