From: <ibr...@us...> - 2013-12-02 16:09:28
|
Revision: 4962 http://sourceforge.net/p/tora/code/4962 Author: ibre5041 Date: 2013-12-02 16:09:22 +0000 (Mon, 02 Dec 2013) Log Message: ----------- Modified Paths: -------------- trunk/tora/src/core/toresultmodeledit.cpp trunk/tora/src/core/toresultmodeledit.h trunk/tora/src/core/toresulttableviewedit.cpp Modified: trunk/tora/src/core/toresultmodeledit.cpp =================================================================== --- trunk/tora/src/core/toresultmodeledit.cpp 2013-12-02 15:25:03 UTC (rev 4961) +++ trunk/tora/src/core/toresultmodeledit.cpp 2013-12-02 16:09:22 UTC (rev 4962) @@ -335,9 +335,10 @@ return fl; } -void toResultModelEdit::commitUpdate(toConnection &conn, const toQuery::Row &row, unsigned int &updated) +void toResultModelEdit::commitUpdate(toConnectionSubLoan &conn, const toQuery::Row &row, unsigned int &updated) { - QString sql = QString("UPDATE %1.%2 SET ").arg(conn.getTraits().quote(Owner)).arg(conn.getTraits().quote(Table)); + toConnectionTraits const& connTraits = conn.ParentConnection.getTraits(); + QString sql = QString("UPDATE %1.%2 SET ").arg(connTraits.quote(Owner)).arg(connTraits.quote(Table)); int num = 0; toQueryParams args; for (int i = PriKeys.size() + 1; i < Headers.size(); i++) @@ -351,7 +352,7 @@ } num++; // Construct place holder - sql += conn.getTraits().quote(Headers[i].name) + "=:f" + QString::number(num); + sql += connTraits.quote(Headers[i].name) + "=:f" + QString::number(num); if (row[i].isBinary()) { @@ -386,14 +387,14 @@ } qDebug() << sql; { - toConnectionSubLoan c(conn); - toQuery q(c, sql, args); + toQuery q(conn, sql, args); updated += q.rowsProcessed(); } } -void toResultModelEdit::commitAdd(toConnection &conn, const toQuery::Row &row, unsigned int &added) +void toResultModelEdit::commitAdd(toConnectionSubLoan &conn, const toQuery::Row &row, unsigned int &added) { - QString sql = QString("INSERT INTO %1.%2 (").arg(conn.getTraits().quote(Owner)).arg(conn.getTraits().quote(Table)); + toConnectionTraits const& connTraits = conn.ParentConnection.getTraits(); + QString sql = QString("INSERT INTO %1.%2 (").arg(connTraits.quote(Owner)).arg(connTraits.quote(Table)); QString sqlColumns, sqlValuePlaceHolders; int num = 0; toQueryParams args; @@ -408,7 +409,7 @@ sqlValuePlaceHolders += ','; } num++; - sqlColumns += conn.getTraits().quote(Headers[i].name); + sqlColumns += connTraits.quote(Headers[i].name); // Construct place holder sqlValuePlaceHolders += (":f"); sqlValuePlaceHolders += QString::number(num); @@ -434,14 +435,14 @@ sql = sql + sqlColumns + ") VALUES (" + sqlValuePlaceHolders + ")"; qDebug() << sql; { - toConnectionSubLoan c(conn); - toQuery q(c, sql, args); + toQuery q(conn, sql, args); added += q.rowsProcessed(); } } -void toResultModelEdit::commitDelete(toConnection &conn, const toQuery::Row &row, unsigned int &deleted) +void toResultModelEdit::commitDelete(toConnectionSubLoan &conn, const toQuery::Row &row, unsigned int &deleted) { - QString sql = QString("DELETE FROM %1.%2 WHERE ").arg(conn.getTraits().quote(Owner)).arg(conn.getTraits().quote(Table)); + toConnectionTraits const& connTraits = conn.ParentConnection.getTraits(); + QString sql = QString("DELETE FROM %1.%2 WHERE ").arg(connTraits.quote(Owner)).arg(connTraits.quote(Table)); QList<QString>::const_iterator ite; int num = 0; toQueryParams args; @@ -459,12 +460,11 @@ } qDebug() << sql; { - toConnectionSubLoan c(conn); - toQuery q(c, sql, args); + toQuery q(conn, sql, args); deleted += q.rowsProcessed(); } } -void toResultModelEdit::commitChanges(toConnection &conn, unsigned int &updated, unsigned int &added, unsigned int &deleted) +void toResultModelEdit::commitChanges(toConnectionSubLoan &conn, unsigned int &updated, unsigned int &added, unsigned int &deleted) { toQuery::RowList::const_iterator ite; for(ite = Rows.constBegin(); ite != Rows.constEnd(); ite++) @@ -504,12 +504,13 @@ emit changed(changed()); } -unsigned toResultModelEdit::commitDelete(ChangeSet &change, toConnection &conn) +unsigned toResultModelEdit::commitDelete(toConnectionSubLoan &conn, ChangeSet &change) { + toConnectionTraits const& connTraits = conn.ParentConnection.getTraits(); const toResultModel::HeaderList Headers = headers(); - bool oracle = conn.providerIs("Oracle"); + bool oracle = conn.ParentConnection.providerIs("Oracle"); - QString sql = QString("DELETE FROM %1.%2 ").arg(conn.getTraits().quote(Owner)).arg(conn.getTraits().quote(Table)); + QString sql = QString("DELETE FROM %1.%2 ").arg(connTraits.quote(Owner)).arg(connTraits.quote(Table)); sql += (" WHERE "); int col = 1; bool where = false; @@ -532,7 +533,7 @@ else where = true; - sql += conn.getTraits().quote(Headers[col].name); + sql += connTraits.quote(Headers[col].name); if ((*j).isNull()) sql += " IS NULL"; @@ -565,11 +566,10 @@ } { - toConnectionSubLoan c(conn); - toQuery q(c, sql, args); + toQuery q(conn, sql, args); if (toConfigurationSingle::Instance().autoCommit()) - c->commit(); + conn->commit(); else { throw QString("Not implemented yet. %1").arg(__QHERE__); @@ -580,21 +580,21 @@ } -unsigned toResultModelEdit::commitAdd(ChangeSet &change, toConnection &conn) +unsigned toResultModelEdit::commitAdd(toConnectionSubLoan &conn, ChangeSet &change) { + toConnectionTraits const& connTraits = conn.ParentConnection.getTraits(); const toResultModel::HeaderList Headers = headers(); + QString sql = QString("INSERT INTO %1.%2 (").arg(connTraits.quote(Owner)).arg(connTraits.quote(Table)); - QString sql = QString("INSERT INTO %1.%2 (").arg(conn.getTraits().quote(Owner)).arg(conn.getTraits().quote(Table)); - int num = 0; for (int i = 1; i < change.row.size(); i++) { if (num > 0) sql += ","; - sql += conn.getTraits().quote(headerData( - i, - Qt::Horizontal, - Qt::DisplayRole).toString()); + sql += connTraits.quote(headerData( + i, + Qt::Horizontal, + Qt::DisplayRole).toString()); num++; } @@ -639,11 +639,10 @@ args << change.row[i]; { - toConnectionSubLoan c(conn); - toQuery q(c, sql, args); + toQuery q(conn, sql, args); if (toConfigurationSingle::Instance().autoCommit()) - c->commit(); + conn->commit(); else { throw QString("Not implemented yet. %1").arg(__QHERE__); @@ -653,13 +652,14 @@ } } -unsigned toResultModelEdit::commitUpdate(ChangeSet &change, toConnection &conn) +unsigned toResultModelEdit::commitUpdate(toConnectionSubLoan &conn, ChangeSet &change) { + toConnectionTraits const& connTraits = conn.ParentConnection.getTraits(); const toResultModel::HeaderList Headers = headers(); - bool oracle = conn.providerIs("Oracle"); + bool oracle = conn.ParentConnection.providerIs("Oracle"); - QString sql = QString("UPDATE %1.%2 SET ").arg(conn.getTraits().quote(Owner)).arg(conn.getTraits().quote(Table)); - sql += conn.getTraits().quote(change.columnName); + QString sql = QString("UPDATE %1.%2 SET ").arg(connTraits.quote(Owner)).arg(connTraits.quote(Table)); + sql += connTraits.quote(change.columnName); // set new value in update statement if (change.newValue.isNull()) @@ -694,10 +694,10 @@ j++, col++) { - QString columnName = conn.getTraits().quote(headerData( - col, - Qt::Horizontal, - Qt::DisplayRole).toString()); + QString columnName = connTraits.quote(headerData( + col, + Qt::Horizontal, + Qt::DisplayRole).toString()); if ((*j).isComplexType()) { @@ -783,10 +783,9 @@ } { - toConnectionSubLoan c(conn); - toQuery q(c, sql, args); + toQuery q(conn, sql, args); if (toConfigurationSingle::Instance().autoCommit()) - c->commit(); + conn->commit(); else { throw QString("Not implemented yet. %1").arg(__QHERE__); Modified: trunk/tora/src/core/toresultmodeledit.h =================================================================== --- trunk/tora/src/core/toresultmodeledit.h 2013-12-02 15:25:03 UTC (rev 4961) +++ trunk/tora/src/core/toresultmodeledit.h 2013-12-02 16:09:22 UTC (rev 4962) @@ -190,7 +190,7 @@ /** * Update data */ - void commitChanges(toConnection &conn, unsigned int &updated, unsigned int &added, unsigned int &deleted); + void commitChanges(toConnectionSubLoan &conn, unsigned int &updated, unsigned int &added, unsigned int &deleted); QList<struct ChangeSet>& changes(); @@ -198,14 +198,14 @@ protected: - void commitUpdate(toConnection &conn, const toQuery::Row &row, unsigned int &updated); - void commitAdd(toConnection &conn, const toQuery::Row &row, unsigned int &added); - void commitDelete(toConnection &conn, const toQuery::Row &row, unsigned int &deleted); + void commitUpdate(toConnectionSubLoan &conn, const toQuery::Row &row, unsigned int &updated); + void commitAdd(toConnectionSubLoan &conn, const toQuery::Row &row, unsigned int &added); + void commitDelete(toConnectionSubLoan &conn, const toQuery::Row &row, unsigned int &deleted); // this code is duplicate to toResultModelEdit (moved from toResultTableViewEdit) - unsigned commitUpdate(ChangeSet &change, toConnection &conn); - unsigned commitAdd(ChangeSet &change, toConnection &conn); - unsigned commitDelete(ChangeSet &change, toConnection &conn); + unsigned commitUpdate(toConnectionSubLoan &conn, ChangeSet &change); + unsigned commitAdd(toConnectionSubLoan &conn, ChangeSet &change); + unsigned commitDelete(toConnectionSubLoan &conn, ChangeSet &change); /** * Append change to Changes Modified: trunk/tora/src/core/toresulttableviewedit.cpp =================================================================== --- trunk/tora/src/core/toresulttableviewedit.cpp 2013-12-02 15:25:03 UTC (rev 4961) +++ trunk/tora/src/core/toresulttableviewedit.cpp 2013-12-02 16:09:22 UTC (rev 4962) @@ -151,8 +151,6 @@ return false; } - toConnection &conn = connection(); - QProgressDialog progress(tr("Performing changes"), tr("Cancel"), 0, @@ -163,6 +161,7 @@ unsigned updated = 0, added = 0, deleted = 0; if(EditModel->getPriKeys().empty()) { + toConnectionSubLoan conn(connection()); // No primary keys for (int changeIndex = 0; changeIndex < Changes.size(); changeIndex++) { @@ -178,13 +177,13 @@ switch (change.kind) { case toResultModelEdit::Delete: - deleted += EditModel->commitDelete(change, conn); + deleted += EditModel->commitDelete(conn, change); break; case toResultModelEdit::Add: - added += EditModel->commitAdd(change, conn); + added += EditModel->commitAdd(conn, change); break; case toResultModelEdit::Update: - updated += EditModel->commitUpdate(change, conn); + updated += EditModel->commitUpdate(conn, change); break; default: Utils::toStatusMessage(tr("Internal error.")); @@ -201,23 +200,24 @@ } else { + toConnectionSubLoan conn(connection()); throw QString("Not implemented yet. %1").arg(__QHERE__); - // try - // { - // Model->commitChanges(conn, updated, added, deleted); - // if (toConfigurationSingle::Instance().autoCommit()) - // conn.commit(); - // else - // { - // throw QString("Not implemented yet. %1").arg(__QHERE__); - // ///toGlobalEventSingle::Instance().setNeedCommit(conn); - // } - // } - // catch(...) - // { - // conn.rollback(); - // throw; - // } + try + { + editModel()->commitChanges(conn, updated, added, deleted); + if (toConfigurationSingle::Instance().autoCommit()) + conn->commit(); + else + { + throw QString("Not implemented yet. %1").arg(__QHERE__); + ///toGlobalEventSingle::Instance().setNeedCommit(conn); + } + } + catch(...) + { + conn->rollback(); + throw; + } } Utils::toStatusMessage(tr("Saved %1 changes(updated %2, added %3, deleted %4)") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |