Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 64 additions & 59 deletions src/sqlitebrowser/form1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -819,72 +820,76 @@ 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);
sqlite3_stmt *vm;
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; e<ncol; e++)
queryResultListView->addColumn(sqlite3_column_name(vm, e));
mustCreateColumns = false;
}
for (int e=0; e<ncol; e++){
char * strresult = 0;
QString rv;
strresult = (char *) sqlite3_column_text(vm, e);
rv = QString(strresult);
//show it here
QString decoded = db.GetDecodedQString(rv);
QString firstline = decoded.section( '\n', 0,0 );
if (firstline.length()>MAX_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; e<ncol; e++)
queryResultListView->addColumn(sqlite3_column_name(vm, e));
mustCreateColumns = false;
}
for (int e=0; e<ncol; e++){
char * strresult = 0;
QString rv;
strresult = (char *) sqlite3_column_text(vm, e);
rv = QString(strresult);
//show it here
QString decoded = db.GetDecodedQString(rv);
QString firstline = decoded.section( '\n', 0,0 );
if (firstline.length()>MAX_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;
}
}


Expand Down