Доброго времени суток, реализовал в программе удаление полей или записей такими функциями:
void MainWindow::deleteRecord()
{
QSqlQuery query;
QString str;
int id;
QModelIndexList indexes = ui->sqlTable->selectionModel()->selection().indexes();
foreach(QModelIndex index, indexes) {
QSqlRecord record = model->record(index.row());
id = record.value("ID").toInt();
qDebug()<<id;
str=QString::number(id);
query.exec("delete from "+tableName+" where ID="+str);
}
model->setTable(tableName);
model->select();
ui->sqlTable->setModel(model);
}
void MainWindow::deleteField()
{
int cnumber;
QModelIndexList indexes = ui->sqlTable->selectionModel()->selection().indexes();
foreach(QModelIndex index, indexes) {
cnumber=index.column();
qDebug()<<cnumber;
QSqlRecord record=model->record();
QString field=record.fieldName(cnumber);
qDebug()<<field;
QSqlQuery query;
query.exec("alter table "+tableName+" drop column "+field);
}
model->setTable(tableName);
model->select();
ui->sqlTable->setModel(model);
}
но столкнулся с проблемой: например я выделил запись и нажимаю кнопку удалить поле, в результате оно удаляет все поля, аналогичная ситуация и с удалением записей при выбранном поле.Вопрос как можно ли отследить что выбрано поле или запись и наложить какое то условие в функцию удаления например If(....выбрано поле а нужно удалить запись...)return;Заранее спасибо за помощь.