9MSqlQuery::~MSqlQuery() {
10 if (!m_inTransaction) {
13 Q_ASSERT(m_commit ==
true || m_rollback ==
true);
17MSqlQuery::MSqlQuery() : QSqlQuery() {
18 m_inTransaction =
false;
26MSqlQuery::MSqlQuery(QSqlDatabase db) : QSqlQuery(db) {
27 m_inTransaction =
false;
35void MSqlQuery::jeChyba() {
37 QSqlError e = QSqlQuery::lastError();
38 if (e.type() == QSqlError::NoError) {
41 QString text = lastBoundQuery();
42 QString a = QString(
"%1\n%2\n%3\n")
43 .arg(e.databaseText())
49 if (m_inTransaction) { rollback(); }
53QString MSqlQuery::lastBoundQuery()
const {
54 QString text = lastQuery();
55 QMap<QString, QVariant> bvals = boundValues();
56 QMapIterator<QString, QVariant> iterator(bvals);
57 while (iterator.hasNext()) {
59 QString key = iterator.key();
60 QVariant val = bvals[key];
61 switch ((QMetaType::Type)(val.type())) {
64 case QMetaType::Double:
65 case QMetaType::Float:
67 case QMetaType::LongLong:
68 case QMetaType::Short:
69 case QMetaType::UShort:
70 text.replace(key, QString(
"%1").arg(val.toString()));
73 text.replace(key, QString(
"'%1'").arg(val.toString()));
81bool MSqlQuery::exec (
const QString& q) {
82 Q_ASSERT(m_commit ==
false);
83 Q_ASSERT(m_rollback ==
false);
84 if (m_inTransaction && !m_success) {
return false; }
85 if (!QSqlQuery::exec(q)) {
93bool MSqlQuery::exec () {
96 if (m_inTransaction && !m_success) {
return false; }
97 if (!QSqlQuery::exec()) {
104void MSqlQuery::begin() {
105 QSqlQuery::exec(
"begin;");
108 m_inTransaction =
true;
112void MSqlQuery::rollback() {
113 Q_ASSERT(m_commit ==
false);
114 Q_ASSERT(m_inTransaction ==
true);
120 QSqlQuery::exec(
"rollback;");
124bool MSqlQuery::commit() {
126 Q_ASSERT(m_inTransaction ==
true);
127 if (m_rollback) {
return m_success; }
130 QSqlQuery::exec(
"commit;");
135 QSqlQuery::exec(
"rollback;");