首页 > 编程知识 正文

qt连接oracle数据库,qt用什么数据库

时间:2023-05-04 08:22:15 阅读:37884 作者:2365

QT的数据库操作有两种方法。 1 )可以使用QsqlTableModel类与QTableView配合使用进行接口显示和数据库操作。

该方法比较方便快捷二)使用原始SQL语言,利用INSERT、UPDATE、SELECT、DELETE实现插入、更新、查询、删除功能;

1 )使用qsql表模型类;

qsql数据库数据库数据库; //数据库打开;

QString szTable='test '; //数据表名称

m _ psql table model=newqsqltablemodel (this,db ); //bind tableView;

m _ psql表模型-设置表模型(qsql表模型3360: onmanual submit );//有三种创建模式;

m _ psql表模型- settable (SZ表; //指定数据表

m _ psql表模型集过滤器(id=1); //where条件;

m _ psql表模型- select (;//相当于SQL语言的select

1、增加记录

intn rownum=m _ SQL table model-rowcount (; //记录数

qlrecordrecord=m _ SQL table model-record (; //

m _ SQL table模型集记录(n rownum,record;

if (! m_sqlTableModel-submitAll ()

{

q调试() )

}

2、修改记录

QL表模型* pmode=dynamic _ cast (ui-table view-model () );

pMode-database ().transaction ); //开始事务操作

pmode-submit all () (if )//将所有修改的数据提交到数据库

{

pMode-database ().commit ); //提交成功后,事务真的要修改数据库数据

} else {

pMode-database ().rollback ); //提交失败,事务将回滚

qessagebox :3360警告(this,tr )表模型(,tr ) )数据库错误: %1) (.arg ) pmode-lasterror ) (.text ) )

}

pMode-revertAll (; //取消修改

3、查询记录

m _ psql表模型集过滤器(id=1);

m _ psql表模型- select (; //查询

4、删除记录

//删除实现多行删除的键函数removeRow

qitemselectionmodel * pselect model=ui-table view-selection model (;

qodelindexlistindexlist=pselect model-selectedindex es (; //已选择;

QMaprowMap;

Foreach(qmodelindexindex,索引列表)。

{

if (! index.isValid () ) return;

if(index.column )!=0)继续;

rowmap.insert(index.row ),0 );

}

质量映射器(原始映射); //如果尝试删除多行,则按原样一行一行地删除会发生位置移动。 在此,通过保存要删除的所有行,并从后向前删除,来解决位置移动导致的删除错误。

rowMapIterator.toBack (;

while (rowmapiterator.has previous () ) )

{

rowMapIterator.previous (;

int rowm=rowMapIterator.key (;

m _ psql表模型- remove row (rowm;

}

m _ psql表模型- submit all (;

m _ psql表模型- select (;

QItemSelectionModel是QTableView的选择包类,可以方便地检索当前选定的区域。

2 )使用原始SQL语句

略;

注:此博文为扩展型

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。