From: <mrj...@us...> - 2008-04-09 03:27:09
|
Revision: 2684 http://tora.svn.sourceforge.net/tora/?rev=2684&view=rev Author: mrjohnson0 Date: 2008-04-08 20:27:06 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Huh. Query(Long) creates a new connection. It's even faster when not leaking memory like it's cool. Modified Paths: -------------- trunk/tora/src/toeventquery.h trunk/tora/src/toeventquerytask.cpp trunk/tora/src/toeventquerytask.h trunk/tora/src/toresultmodel.cpp trunk/tora/src/toresulttableview.cpp trunk/tora/src/toresulttableview.h Modified: trunk/tora/src/toeventquery.h =================================================================== --- trunk/tora/src/toeventquery.h 2008-04-09 03:24:48 UTC (rev 2683) +++ trunk/tora/src/toeventquery.h 2008-04-09 03:27:06 UTC (rev 2684) @@ -123,6 +123,13 @@ const toQList ¶m, toResultStats *statistics = NULL); + /** + * Undefined copy contructor. Don't copy me. + * + */ + toEventQuery(toEventQuery &other); + + virtual ~toEventQuery(); Modified: trunk/tora/src/toeventquerytask.cpp =================================================================== --- trunk/tora/src/toeventquerytask.cpp 2008-04-09 03:24:48 UTC (rev 2683) +++ trunk/tora/src/toeventquerytask.cpp 2008-04-09 03:27:06 UTC (rev 2684) @@ -69,36 +69,25 @@ SQL(sql), Params(param), Statistics(stats) { - Query = 0; - Columns = 0; + Query = 0; + Columns = 0; + Connection = &conn; +} + +void toEventQueryTask::run(void) { try { - Query = new toQuery(conn, toQuery::Long); - Query->setParent(this); + Query = new toQuery(*Connection, toQuery::Background); if(Statistics) Statistics->changeSession(*Query); - } - catch(const QString &str) { - Query = 0; - throw; - } - connect(this, - SIGNAL(readRequested()), - this, - SLOT(pread()), - Qt::QueuedConnection); -} + connect(this, + SIGNAL(readRequested()), + this, + SLOT(pread()), + Qt::QueuedConnection); - -void toEventQueryTask::run(void) { - if(!Query) { - emit error(tr("Internal error: Query is NULL.")); - return; - } - - try { Query->execute(SQL, Params); toQDescList desc = Query->describe(); @@ -118,11 +107,9 @@ exec(); } CATCH_ALL; -} - -toEventQueryTask::~toEventQueryTask() { - close(); + if(Query) + delete Query; } Modified: trunk/tora/src/toeventquerytask.h =================================================================== --- trunk/tora/src/toeventquerytask.h 2008-04-09 03:24:48 UTC (rev 2683) +++ trunk/tora/src/toeventquerytask.h 2008-04-09 03:27:06 UTC (rev 2684) @@ -74,6 +74,9 @@ // Statistics to be used if any. QPointer<toResultStats> Statistics; + toConnection *Connection; + + public: toEventQueryTask(QObject *parent, @@ -81,9 +84,7 @@ const QString &sql, const toQList ¶m, toResultStats *stats = NULL); - ~toEventQueryTask(); - protected: /** Modified: trunk/tora/src/toresultmodel.cpp =================================================================== --- trunk/tora/src/toresultmodel.cpp 2008-04-09 03:24:48 UTC (rev 2683) +++ trunk/tora/src/toresultmodel.cpp 2008-04-09 03:27:06 UTC (rev 2684) @@ -118,6 +118,9 @@ try { + // must check for errors + Query->eof(); + int cols = Headers.size(); if(cols < 1) return; @@ -181,6 +184,7 @@ First = !First; emit firstResult(str, true); } + toStatusMessage(str); cleanup(); return; } @@ -191,6 +195,7 @@ First = !First; emit firstResult(str, true); } + toStatusMessage(str); cleanup(); return; } Modified: trunk/tora/src/toresulttableview.cpp =================================================================== --- trunk/tora/src/toresulttableview.cpp 2008-04-09 03:24:48 UTC (rev 2683) +++ trunk/tora/src/toresulttableview.cpp 2008-04-09 03:27:06 UTC (rev 2684) @@ -191,11 +191,13 @@ { emit firstResult(toResult::sql(), str, true); emit done(); + toStatusMessage(str); } catch (const QString &str) { emit firstResult(toResult::sql(), str, true); emit done(); + toStatusMessage(str); } verticalHeader()->setVisible(false); @@ -619,7 +621,7 @@ void toTableViewIterator::updateIndex(void) { - if (_view && _row < _view->model()->rowCount()) + if (_view && _view->model() && _row < _view->model()->rowCount()) _index = _view->model()->index(_row, 1); // skip numbercolumn else _index = QModelIndex(); Modified: trunk/tora/src/toresulttableview.h =================================================================== --- trunk/tora/src/toresulttableview.h 2008-04-09 03:24:48 UTC (rev 2683) +++ trunk/tora/src/toresulttableview.h 2008-04-09 03:27:06 UTC (rev 2684) @@ -113,10 +113,6 @@ // use Filter to hide rows void applyFilter(void); - // apply column rules, numbercolumn, readable columns - void applyColumnRules(void); - - protected slots: void displayMenu(const QPoint &pos); void menuCallback(QAction *action); @@ -129,6 +125,8 @@ virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); + // apply column rules, numbercolumn, readable columns + void applyColumnRules(void); protected: // pointer to model This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |