• 4747阅读
  • 7回复

关于使用数据库时QSqlTableModel的问题 [复制链接]

上一主题 下一主题
离线hiti_tony
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-03
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
    我现在用QSqlDatabase连通了oracle数据库,能通过QSqlQuery进行相关的sql语句操作,可是用QSqlTableModel时,总是不能从数据库里取出record,  代码如下

QSqlTableModel Model(0,db);         //db是我的QSqlDatabase
Model.setTable("table_name");      //table_name是数据库中的表名,该表的权限绝对是有的,并且表中很多记录
Model.select();
if(Model.rowCount()>0)
    {
..............



这里的Model.rowCount()得到的总是0,这是什么原因造成的?各位高手指点一下!
离线nobody
只看该作者 1楼 发表于: 2009-09-03
QSqlTableModel是和QTableView配合用的,初始化时构造函数的parent参数应该是相应的TableView
离线sdh-bing
只看该作者 2楼 发表于: 2009-09-03
你什么都没select,能返回什么呢
似乎有个函数setFilter()
离线hiti_tony
只看该作者 3楼 发表于: 2009-09-04
感谢上面2位的回答,但是我没有要把它显示出来,应该没有必要用到QTableView吧,默认构造的参数parant也是0啊!至于setfilter,设了也不行,不设setfilter,select的应该是所有记录吧!需要塞选时才用setfilter啊。
还望大家继续顶一顶,如果我有错的地方尽管指出,谢谢!
离线hiti_tony
只看该作者 4楼 发表于: 2009-09-04
自己再顶一下,在select后我用lastError获取了一下错误,提示“QODBC3: unable to execute statement”
高手帮忙分析下, 谢谢!
离线nobody
只看该作者 5楼 发表于: 2009-09-04
引用第3楼hiti_tony于2009-09-04 09:33发表的  :
感谢上面2位的回答,但是我没有要把它显示出来,应该没有必要用到QTableView吧,默认构造的参数parant也是0啊!至于setfilter,设了也不行,不设setfilter,select的应该是所有记录吧!需要塞选时才用setfilter啊。
还望大家继续顶一顶,如果我有错的地方尽管指出,谢谢!

为什么不用QSQlQuery呢
离线hiti_tony
只看该作者 6楼 发表于: 2009-09-04
我题目上有说啊,用QSQlQuery是行的通的,但直接用sql语句不方便插入BLOB类型的数据,所以我想用QSqlTableModel试试看。
离线hiti_tony
只看该作者 7楼 发表于: 2009-09-04
此贴就此打住,我换个询问方式开贴。
快速回复
限100 字节
 
上一个 下一个