最近才开始接触QT,我使用QODBC协议来连接数据库。使用QTableView和QSqlTableModel来显示数据库,
代码大致如下
db1 = QSqlDatabase::addDatabase("QODBC");
db1.setDatabaseName("Test");
db1.setHostName("OFFICE");
db1.setUserName("sa");
db1.setPassword("sql");
if (!db1.open()) {
return false;
}
....
QTableView viewTable = new QTableView();
QSqlTableModel modelSql= new QSqlTableModel(viewTable,db1);
modelSql->setEditStrategy(QSqlTableModel::OnRowChange);//OnFieldChange,OnManualSubmit,OnRowChange
modelSql->select();
viewTable->setSelectionBehavior(QAbstractItemView::SelectRows);
viewTable->setSelectionMode(QTableView::SingleSelection);
viewTable->setModel(modelYc);
viewTable->setEditTriggers (QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed);
我想直接在TABLE中实现对数据库表内容的修改(编辑TABLE的内容直接修改)
modelSql->setEditStrategy(QSqlTableModel::OnRowChange);l来设置编辑策略。
但是还是修改不了,我试过,使用OnManualsubmit策略,通过手动submitAll(),也无法实现。
同样如果试验过使用QSQLITE协议连接的数据库就能实现,不知道我究竟什么地方没写对,
请高手指点。