菜鸟玩qt(2)---翻译QSqlTableModel Class帮助文档

QSqlTableModel Class该类为单个数据表提供一种可编辑的数据模型。
#include <QSqlTableModel>
继承QSqlQueryModel
个公共函数继承从QAbstractTableModel
35公共槽
virtual void     revert()
void               revertAll()
virtual bool     submit()
bool               submitAll()
 
2信号:   
void        beforeDelete(int row)
void       beforeInsert(QSqlRecord&record)
void        beforeUpdate(int row,QSqlRecord&record)
void        primeInsert(int row,QSqlRecord&record)
 
18受保护的函数             
virtual bool     deleteRowFromTable(int row)
QModelIndex  indexInQuery(const QModelIndex&item)const
virtual bool     insertRowIntoTable(const QSqlRecord&values)
virtual QString       orderByClause()const
virtual QString       selectStatement()const
void               setPrimaryKey(const QSqlIndex&key)
void               setQuery(const QSqlQuery&query)
virtual bool     updateRowInTable(int row,const QSqlRecord&values)
 
3个受保护的函数继承从QObject
 
个特性继承从QObject
5上的,能够被用来提供数据给视图类,例如QTableView这个表
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
model->removeColumn(0);  //我们设置SQL也能被用来程序化地进入数据库,不绑定到一个VIEW.
 
QSqlTableModel model;
Model.setTable(“employee”);
QString name = model.record(4).value(“name”).toString();
 
,提取工资域。
修改分类顺序。最后,你必须调用select()作为QTableViewQSqlRelatinalDelegateCached Table Example.
 
这个enum 在一行的改变将在用户选择另一行时被应用
QSqlTableModel::OnManulSubmit   2    注意:为阻止只是部分初始化的行插入数据库,对于新插入的行,OnFieldChange也看setEditStrategy()
 
创建一个空的QSqlTableModel 。如果db 毁掉对象并释放所有被分配的资源
 
void QSqlTableModel::beforeDelete(int row) [signal]
这个信号在某行被插入到目前活动的数据表时,被insertRowIntoTable()这个信号在某行被更新之前,从updateRowInTable()设置,并且用QSqlRecord::isGenerated()重载从QSqlQueryModel::clear()
Void QSqlQueryModel::clear()  [virtual]
也看setData()
QVariant QAbstractItemModel::data(const QModelIndex&index,int role=Qt::DisplayRole)const [pure virtual]
确定。
也看Qt::ItemDataRole,setData()删除被给的行从目前的数据表。
删除值。当更改数据库时,这个模型将决定依赖他的编辑策略。
removeRow()
 
EditStrategy QSqltableModel::editStrategy() const
所指的域的index
 
QString QSqlTableModel::filter() const
返回index )并允许它被选择(ItemIsSelectable)
 
QVariant QSqlTableModel::headerData(int section,Qt::Orientation orientation,int role=Qt::DisplayRole)cosnt [virtual]
在标题的哪个section,对于水平的标题,section也看 Qt::ItemDataRole,setHeaderData()在数据库的index是对应相同的
不指向结果集中的一个值,将返回一个无效的index
setRecord()
removeRows()
 
Bool QSqlTableModel::insertRowIntoTable(const QSqlRecord&values) [virtual protected]
setData() 找到
插入const必须是无效的,因为这个模型不支持父子关系
更新策略时
primeInsert()也看primeInsert()的值是dirty值指该值被修改但是没有被写入数据库
按照目前的排序规则返回一个sql
为目前的表返回逐渐。如果表没有被设置或者没有主键将返回一个空的QSqlIndex
发出,当一个插入操作被初始化。Recordcolumn模型,
重载从QAbstractItemModel::removeRows()
行。因为该模型不支持父子模型,所以parent信号。当编辑策略是OnManualSubmit如果所有行能被移除,返回真。
 
Void QSqlTableModel::revert()[virtual slot]
如果模型的策略被设置为OnRowChange使用revertAll()也看submit().submitAll().revertRow().revertAll()
 
Void QSqlTableModel::revertAll()  [slot]
所有的改变
 
Int QSqlTableModel::rowCount(const QModelIndex&parent=QModelIndex())const [virtual]
的行数。当parent的子项数。
parent用表中的数据产生模型,使用setTable(),返回用来产生模型的sqlorderByClause()
 
Bool QSqlTableModel::setData(const QModelIndex &index,const QVariant&value,int role=Qt::EditRole)[virtual]
role也看editStrategy(),data(),submitAll(),revertRow()
 
Void QSqlTableModel::setEditStrategy(EditStrategy strategy) [virtual]
也看editStrategy(),revertAll()
 
Void QSqlTableModel::setFilter(const QString&filter) [virtual]
where
也看filter(),select(),selectStatement(),orderByClause()
 
Void QSqlTableModel::setPrimaryKey(const QSqlIndex&key) [protected]
也看primaryKey() 。正常情况下,你不应该在QSqlTableModel 也看selectStatement()
 
Bool QSqlTableModel::setRecord(int row,const QSqlRecord&record)
。如果值能够被设定返回真,否则返回假。
。不从表中选择数据,但是获得它的域信息。
()
重载从QAbstractItemModel::sort()
来设置顺序而不用数据产生模型。
这个重载槽被项目代表调用,当用户停止编辑目前的行。
。对于OnManualSubmit来提交所有未决的改变,对于OnManualSubmit
 
Bool QSqlTableModel::submitAll()  [slot]
注意:在OnManualSubmit 返回目前被选择的表的名字
 
Bool QSqltableModel::updateRowInTable(int row,cosnt QSqlRecord&values)[virtual protected]
这是一个低层次的直接操作数据库的方法,不应该被直接调用。用setData()被更新。生成标志能被设置用QSqlReord::setGenerated()<span times="" new="" roman';="" mso-hansi-font-family:="" 'times="" roman'"="" style="padding: 0px; margin: 0px; font-family: 宋体;">和测试用QSqlRecord::isGenerated()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值