diff --git a/src/sqlitebrowser/form1.cpp b/src/sqlitebrowser/form1.cpp index a750568..b503ab7 100644 --- a/src/sqlitebrowser/form1.cpp +++ b/src/sqlitebrowser/form1.cpp @@ -260,11 +260,12 @@ void mainForm::resetBrowser() comboBrowseTable->clear(); QStringList tab = db.getTableNames(); if (tab.isEmpty()){ - comboBrowseTable->insertItem("",-1); + comboBrowseTable->insertItem("",-1); } else { - for ( QStringList::Iterator ct = tab.begin(); ct != tab.end(); ++ct ) { - comboBrowseTable->insertItem(*ct,-1); - } + tab.sort(); + for ( QStringList::Iterator ct = tab.begin(); ct != tab.end(); ++ct ) { + comboBrowseTable->insertItem(*ct,-1); + } } setRecordsetLabel(); comboBrowseTable->setCurrentItem(0); @@ -819,8 +820,12 @@ void mainForm::executeQuery() QString query = db.GetEncodedQString(sqlTextEdit->text()); if (query.isEmpty()) { - QMessageBox::information( this, applicationName, "Query string is empty" ); - return; + QMessageBox::information( this, applicationName, "Query string is empty" ); + return; + } + if (!db.isOpen()) { + QMessageBox::information( this, applicationName, "No database open" ); + return; } //log the query db.logSQL(query, kLogMsg_User); @@ -828,63 +833,63 @@ void mainForm::executeQuery() const char *tail=NULL; int ncol; int err=0; - QString lastErrorMessage = QString("No error"); - //Accept multi-line queries, by looping until the tail is empty - while (1) { - if (tail!=NULL) { - query = QString(tail); - } - queryResultListView->clear(); - queryResultListView->setSorting (-1, FALSE); - while (queryResultListView->columns()>0) - { - queryResultListView->removeColumn(0); - } + QString lastErrorMessage = QString("No error"); + //Accept multi-line queries, by looping until the tail is empty + while (1) { + if (tail!=NULL) { + query = QString(tail); + } + queryResultListView->clear(); + queryResultListView->setSorting (-1, FALSE); + while (queryResultListView->columns()>0) + { + queryResultListView->removeColumn(0); + } - err=sqlite3_prepare(db._db,query,query.length(), - &vm, &tail); - if (err == SQLITE_OK){ - db.setDirty(true); - int rownum = 0; - Q3ListViewItem * lasttbitem = 0; - bool mustCreateColumns = true; - while ( sqlite3_step(vm) == SQLITE_ROW ){ - ncol = sqlite3_data_count(vm); - Q3ListViewItem * tbitem = new Q3ListViewItem( queryResultListView, lasttbitem); - //setup num of cols here for display grid - if (mustCreateColumns) - { - for (int e=0; eaddColumn(sqlite3_column_name(vm, e)); - mustCreateColumns = false; - } - for (int e=0; eMAX_DISPLAY_LENGTH) - { - firstline.truncate(MAX_DISPLAY_LENGTH); - firstline.append("..."); - } - tbitem->setText( e, firstline); - lasttbitem = tbitem; - rownum++; - } - } - sqlite3_finalize(vm); + err=sqlite3_prepare(db._db,query,query.length(), + &vm, &tail); + if (err == SQLITE_OK){ + db.setDirty(true); + int rownum = 0; + Q3ListViewItem * lasttbitem = 0; + bool mustCreateColumns = true; + while ( sqlite3_step(vm) == SQLITE_ROW ){ + ncol = sqlite3_data_count(vm); + Q3ListViewItem * tbitem = new Q3ListViewItem( queryResultListView, lasttbitem); + //setup num of cols here for display grid + if (mustCreateColumns) + { + for (int e=0; eaddColumn(sqlite3_column_name(vm, e)); + mustCreateColumns = false; + } + for (int e=0; eMAX_DISPLAY_LENGTH) + { + firstline.truncate(MAX_DISPLAY_LENGTH); + firstline.append("..."); + } + tbitem->setText( e, firstline); + lasttbitem = tbitem; + rownum++; + } + } + sqlite3_finalize(vm); }else{ - lastErrorMessage = QString (sqlite3_errmsg(db._db)); + lastErrorMessage = QString (sqlite3_errmsg(db._db)); } - queryErrorLineEdit->setText(lastErrorMessage); - queryResultListView->setResizeMode(Q3ListView::AllColumns); + queryErrorLineEdit->setText(lastErrorMessage); + queryResultListView->setResizeMode(Q3ListView::AllColumns); - if(*tail==0) break; - } + if(*tail==0) break; + } }