Changeset View
Changeset View
Standalone View
Standalone View
src/core/kexiproject.cpp
Show First 20 Lines • Show All 155 Lines • ▼ Show 20 Line(s) | 154 | if (!tg.transaction().active()) { | |||
---|---|---|---|---|---|
156 | return false; | 156 | return false; | ||
157 | } | 157 | } | ||
158 | if (_newName) { | 158 | if (_newName) { | ||
159 | if (!part->rename(item, newName)) { | 159 | if (!part->rename(item, newName)) { | ||
160 | q->m_result = KDbResult(part->lastOperationStatus().description); | 160 | q->m_result = KDbResult(part->lastOperationStatus().description); | ||
161 | q->m_result.setMessageTitle(part->lastOperationStatus().message); | 161 | q->m_result.setMessageTitle(part->lastOperationStatus().message); | ||
162 | return false; | 162 | return false; | ||
163 | } | 163 | } | ||
164 | if (!connection->executeVoidSQL(KDbEscapedString("UPDATE kexi__objects SET o_name=%1 WHERE o_id=%2") | 164 | if (!connection->executeSql(KDbEscapedString("UPDATE kexi__objects SET o_name=%1 WHERE o_id=%2") | ||
165 | .arg(connection->escapeString(newName)) | 165 | .arg(connection->escapeString(newName)) | ||
166 | .arg(connection->driver()->valueToSQL(KDbField::Integer, item->identifier())))) | 166 | .arg(connection->driver()->valueToSQL(KDbField::Integer, item->identifier())))) | ||
167 | { | 167 | { | ||
168 | q->m_result = connection->result(); | 168 | q->m_result = connection->result(); | ||
169 | return false; | 169 | return false; | ||
170 | } | 170 | } | ||
171 | } | 171 | } | ||
172 | if (_newCaption) { | 172 | if (_newCaption) { | ||
173 | if (!connection->executeVoidSQL(KDbEscapedString("UPDATE kexi__objects SET o_caption=%1 WHERE o_id=%2") | 173 | if (!connection->executeSql(KDbEscapedString("UPDATE kexi__objects SET o_caption=%1 WHERE o_id=%2") | ||
174 | .arg(connection->escapeString(newCaption)) | 174 | .arg(connection->escapeString(newCaption)) | ||
175 | .arg(connection->driver()->valueToSQL(KDbField::Integer, item->identifier())))) | 175 | .arg(connection->driver()->valueToSQL(KDbField::Integer, item->identifier())))) | ||
176 | { | 176 | { | ||
177 | q->m_result = connection->result(); | 177 | q->m_result = connection->result(); | ||
178 | return false; | 178 | return false; | ||
179 | } | 179 | } | ||
180 | } | 180 | } | ||
181 | if (!tg.commit()) { | 181 | if (!tg.commit()) { | ||
▲ Show 20 Lines • Show All 344 Lines • ▼ Show 20 Line(s) | 521 | if (add_folder_id_column && !d->connection->options()->isReadOnly()) { | |||
526 | 526 | | |||
527 | kexi__blobsCopy->setName("kexi__blobs__copy"); | 527 | kexi__blobsCopy->setName("kexi__blobs__copy"); | ||
528 | if (!d->connection->createTable(kexi__blobsCopy.data(), true /*replaceExisting*/)) { | 528 | if (!d->connection->createTable(kexi__blobsCopy.data(), true /*replaceExisting*/)) { | ||
529 | m_result = d->connection->result(); | 529 | m_result = d->connection->result(); | ||
530 | return false; | 530 | return false; | ||
531 | } | 531 | } | ||
532 | KDbInternalTableSchema *ts = kexi__blobsCopy.take(); // createTable() took ownerhip of kexi__blobsCopy | 532 | KDbInternalTableSchema *ts = kexi__blobsCopy.take(); // createTable() took ownerhip of kexi__blobsCopy | ||
533 | // 2.1 copy data (insert 0's into o_folder_id column) | 533 | // 2.1 copy data (insert 0's into o_folder_id column) | ||
534 | if (!d->connection->executeVoidSQL( | 534 | if (!d->connection->executeSql( | ||
535 | KDbEscapedString("INSERT INTO kexi__blobs (o_data, o_name, o_caption, o_mime, o_folder_id) " | 535 | KDbEscapedString("INSERT INTO kexi__blobs (o_data, o_name, o_caption, o_mime, o_folder_id) " | ||
536 | "SELECT o_data, o_name, o_caption, o_mime, 0 FROM kexi__blobs")) | 536 | "SELECT o_data, o_name, o_caption, o_mime, 0 FROM kexi__blobs")) | ||
537 | // 2.2 remove the original kexi__blobs | 537 | // 2.2 remove the original kexi__blobs | ||
538 | || !d->connection->executeVoidSQL(KDbEscapedString("DROP TABLE kexi__blobs")) //lowlevel | 538 | || !d->connection->executeSql(KDbEscapedString("DROP TABLE kexi__blobs")) //lowlevel | ||
539 | // 2.3 rename the copy back into kexi__blobs | 539 | // 2.3 rename the copy back into kexi__blobs | ||
540 | || !d->connection->alterTableName(ts, "kexi__blobs", false /* no replace */) | 540 | || !d->connection->alterTableName(ts, "kexi__blobs", false /* no replace */) | ||
541 | ) { | 541 | ) { | ||
542 | //(no need to drop the copy, ROLLBACK will drop it) | 542 | //(no need to drop the copy, ROLLBACK will drop it) | ||
543 | m_result = d->connection->result(); | 543 | m_result = d->connection->result(); | ||
544 | return false; | 544 | return false; | ||
545 | } | 545 | } | ||
546 | } | 546 | } | ||
▲ Show 20 Lines • Show All 826 Lines • ▼ Show 20 Line(s) | 1372 | = KDb::sqlWhere(d->connection->driver(), KDbField::Text, "d_user", d->userName()) | |||
1373 | + " AND " + KDb::sqlWhere(d->connection->driver(), KDbField::Text, "d_sub_id", dataID); | 1373 | + " AND " + KDb::sqlWhere(d->connection->driver(), KDbField::Text, "d_sub_id", dataID); | ||
1374 | 1374 | | |||
1375 | const tristate result = d->connection->resultExists(sql + " AND " + sql_sub); | 1375 | const tristate result = d->connection->resultExists(sql + " AND " + sql_sub); | ||
1376 | if (~result) { | 1376 | if (~result) { | ||
1377 | m_result = d->connection->result(); | 1377 | m_result = d->connection->result(); | ||
1378 | return false; | 1378 | return false; | ||
1379 | } | 1379 | } | ||
1380 | if (result == true) { | 1380 | if (result == true) { | ||
1381 | if (!d->connection->executeVoidSQL( | 1381 | if (!d->connection->executeSql( | ||
1382 | KDbEscapedString("UPDATE kexi__userdata SET d_data=" | 1382 | KDbEscapedString("UPDATE kexi__userdata SET d_data=" | ||
1383 | + d->connection->driver()->valueToSQL(KDbField::LongText, dataString) | 1383 | + d->connection->driver()->valueToSQL(KDbField::LongText, dataString) | ||
1384 | + " WHERE o_id=" + QString::number(objectID) + " AND " + sql_sub))) | 1384 | + " WHERE o_id=" + QString::number(objectID) + " AND " + sql_sub))) | ||
1385 | { | 1385 | { | ||
1386 | m_result = d->connection->result(); | 1386 | m_result = d->connection->result(); | ||
1387 | return false; | 1387 | return false; | ||
1388 | } | 1388 | } | ||
1389 | return true; | 1389 | return true; | ||
1390 | } | 1390 | } | ||
1391 | if (!d->connection->executeVoidSQL( | 1391 | if (!d->connection->executeSql( | ||
1392 | KDbEscapedString("INSERT INTO kexi__userdata (d_user, o_id, d_sub_id, d_data) VALUES (") | 1392 | KDbEscapedString("INSERT INTO kexi__userdata (d_user, o_id, d_sub_id, d_data) VALUES (") | ||
1393 | + d->connection->driver()->valueToSQL(KDbField::Text, d->userName()) | 1393 | + d->connection->driver()->valueToSQL(KDbField::Text, d->userName()) | ||
1394 | + ", " + QString::number(objectID) | 1394 | + ", " + QString::number(objectID) | ||
1395 | + ", " + d->connection->driver()->valueToSQL(KDbField::Text, dataID) | 1395 | + ", " + d->connection->driver()->valueToSQL(KDbField::Text, dataID) | ||
1396 | + ", " + d->connection->driver()->valueToSQL(KDbField::LongText, dataString) | 1396 | + ", " + d->connection->driver()->valueToSQL(KDbField::LongText, dataString) | ||
1397 | + ")")) | 1397 | + ")")) | ||
1398 | { | 1398 | { | ||
1399 | m_result = d->connection->result(); | 1399 | m_result = d->connection->result(); | ||
Show All 19 Lines | 1418 | KDbEscapedString sql | |||
1419 | = KDbEscapedString("INSERT INTO kexi__userdata SELECT t.d_user, %2, t.d_sub_id, t.d_data " | 1419 | = KDbEscapedString("INSERT INTO kexi__userdata SELECT t.d_user, %2, t.d_sub_id, t.d_data " | ||
1420 | "FROM kexi__userdata AS t WHERE d_user=%1 AND o_id=%3") | 1420 | "FROM kexi__userdata AS t WHERE d_user=%1 AND o_id=%3") | ||
1421 | .arg(d->connection->escapeString(d->userName())) | 1421 | .arg(d->connection->escapeString(d->userName())) | ||
1422 | .arg(d->connection->driver()->valueToSQL(KDbField::Integer, destObjectID)) | 1422 | .arg(d->connection->driver()->valueToSQL(KDbField::Integer, destObjectID)) | ||
1423 | .arg(d->connection->driver()->valueToSQL(KDbField::Integer, sourceObjectID)); | 1423 | .arg(d->connection->driver()->valueToSQL(KDbField::Integer, sourceObjectID)); | ||
1424 | if (!dataID.isEmpty()) { | 1424 | if (!dataID.isEmpty()) { | ||
1425 | sql += " AND " + KDb::sqlWhere(d->connection->driver(), KDbField::Text, "d_sub_id", dataID); | 1425 | sql += " AND " + KDb::sqlWhere(d->connection->driver(), KDbField::Text, "d_sub_id", dataID); | ||
1426 | } | 1426 | } | ||
1427 | if (!d->connection->executeVoidSQL(sql)) { | 1427 | if (!d->connection->executeSql(sql)) { | ||
1428 | m_result = d->connection->result(); | 1428 | m_result = d->connection->result(); | ||
1429 | return false; | 1429 | return false; | ||
1430 | } | 1430 | } | ||
1431 | return true; | 1431 | return true; | ||
1432 | } | 1432 | } | ||
1433 | 1433 | | |||
1434 | bool KexiProject::removeUserDataBlock(int objectID, const QString& dataID) | 1434 | bool KexiProject::removeUserDataBlock(int objectID, const QString& dataID) | ||
1435 | { | 1435 | { | ||
Show All 38 Lines |