📄 mysqltablemodel.cpp
字号:
#include <QtSql>
#include "mysqltablemodel.h"
MySqlTableModel::MySqlTableModel(QObject *parent, QSqlDatabase db)
:QSqlTableModel(parent,db)
{
}
MySqlTableModel::~MySqlTableModel()
{
}
void MySqlTableModel::setKeyField(const QSqlIndex &index)
{
this->setPrimaryKey(index);
}
bool MySqlTableModel::selectResult()
{
bool bret;
try{
bret=select();
/*
while( canFetchMore())
{
qApp->processEvents();
fetchMore();
}
*/
}
catch(...)
{
}
return bret;
}
bool MySqlTableModel::save()
{
/*
for(int i=0;i<this->record().count();i++)
{
QSqlRelation relation=this->relation(i);
if(relation.isValid())
{
for(int r=0;r<this->rowCount();r++)
{
QVariant vData=this->data(this->index(r,i),Qt::EditRole);
this->setData(this->index(r,i),vData,Qt::DisplayRole);
}
this->setRelation(i,QSqlRelation());
}
}
*/
/*
QString s;
for(int r=0;r<this->rowCount();r++)
{
for(int c=0;c<this->record().count();c++)
{
s.append(this->data(this->index(r,c),Qt::EditRole).toString());
s.append("\t");
}
s.append("\n");
}
*/
//s=database().driver()->escapeIdentifier(tableName().append(".FIELDNAME"),QSqlDriver::FieldName);
//QMessageBox::warning(0,"",s);
bool vret=true;
vret=submitAll();
return vret;
}
void MySqlTableModel::cancel()
{
this->revertAll();
}
bool MySqlTableModel::updateRowInTable(int row, const QSqlRecord &values)
{
return QSqlTableModel::updateRowInTable(row,values);
return true;
}
bool MySqlTableModel::setData ( const QModelIndex & index, const QVariant & value, int role )
{
bool bret= QSqlTableModel::setData(index,value,role);
return bret;
}
void MySqlTableModel::setRelation ( int column, const QSqlRelation & relation )
{
mapRelation.insert(column,relation);
QList<QPair<QString, QString> > list;
QPair<QString, QString> pair;
QString sql;
QSqlQuery query(database());
sql=tr("select %1,%2 from %3 order by %4").arg(relation.indexColumn()).arg(relation.displayColumn()).arg(relation.tableName()).arg(relation.indexColumn());
if(query.exec(sql))
{
while(query.next())
{
pair.first=query.record().field(0).value().toString().trimmed();
pair.second=query.record().field(1).value().toString().trimmed();
list.append(pair);
}
}
mapValues.insert(column,list);
query.clear();
}
QSqlRelation MySqlTableModel::getRelation(int column)
{
return mapRelation.value(column);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -