diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index fcf46479..838332d0 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -595,8 +595,9 @@ void MainWindow::populateTable() if(db.getObjectByName(currentlyBrowsedTableName())->type() == sqlb::Object::Table) { // Table + sqlb::TablePtr table = db.getObjectByName(currentlyBrowsedTableName()).dynamicCast(); ui->actionUnlockViewEditing->setVisible(false); - ui->actionShowRowidColumn->setVisible(true); + ui->actionShowRowidColumn->setVisible(!table->isWithoutRowidTable()); } else { // View ui->actionUnlockViewEditing->setVisible(true); diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 30d6d887..1864d2ad 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -980,8 +980,8 @@ bool DBBrowserDB::deleteRecords(const sqlb::ObjectIdentifier& table, const QStri if (!isOpen()) return false; QStringList quoted_rowids; - for(const QString& rowid : rowids) - quoted_rowids.append("'" + rowid + "'"); + for(QString rowid : rowids) + quoted_rowids.append("'" + rowid.replace("'", "''") + "'"); QString statement = QString("DELETE FROM %1 WHERE %2 IN (%3);") .arg(table.toString()) @@ -1022,7 +1022,7 @@ bool DBBrowserDB::updateRecord(const sqlb::ObjectIdentifier& table, const QStrin .arg(table.toString()) .arg(sqlb::escapeIdentifier(column)) .arg(pk) - .arg(rowid); + .arg(QString(rowid).replace("'", "''")); logSQL(sql, kLogMsg_App); setSavepoint();