美文网首页
PyQt5编程(40)—使用数据库(6)

PyQt5编程(40)—使用数据库(6)

作者: 用电热毯烤猪 | 来源:发表于2018-01-01 21:57 被阅读0次
    3.2 处理查询结果
    如果查询是为选取数据(SQL选择命令),涉及的方法有:
    
     isActive():如果查询处于活动状态,则返回True。 一个活跃的QSqlQuery是exec()已成功执行,但尚未完成的状态。
    isSelect():如果当前查询是SELECT语句,则返回True; 否则返回False。
    
     PyQt5编程(39)中提到执行exec()后要定位到某一内容才能读取数据库记录。QSqlQuery类的定位函数有:
    
    first():定位到第一条记录;
    next():定位到下一条记录。如果是在exec()后立即调用,则定位到第一条记录;
    previous():定位到前一条记录
    last():定位到最后一条记录;
    seek(int index[, bool relative = false]):定位到指定位置index,index=0代表第一条记录。如果可选参数relative为True,则index为相对当前记录的位置,index>0为向前的记录;index<0为向后的记录。
    isvalid(): 如果当前是定位在有效的记录上返回True,否则返回False。
    at():返回当前记录的位置,0表示第一条记录。
    size():返回查询结果中的记录数。
    
    以下方法用来处理数据记录:
    
    value(int index):返回当前记录中字段索引为index的值。
    value(QString name):返回字段名为name为值。
    isNull(int index):如果字段索引为index的值为Null,返回True,否则返回False。
    isNull(QString name):如果字段name的值为Null,返回True,否则返回False。
    record():返回包含当前查询字段信息的QSqlRecord实例。
    

    示例:
    from PyQt5 import QtWidgets, QtSql
    import sys
    app = QtWidgets.QApplication(sys.argv)
    con = QtSql.QSqlDatabase.addDatabase('QSQLITE')
    con.setDatabaseName('data.sqlite')
    con.open()
    query = QtSql.QSqlQuery()
    query.exec("select * from good order by goodname")
    lst = []
    if query.isActive():
    query.first()
    while query.isValid():
    lst.append(query.value('goodname') + ': ' + str(query.value('goodcount')) + 'pcs.')
    query.next()
    for p in lst: print(p)
    con.close()

    相关文章

      网友评论

          本文标题:PyQt5编程(40)—使用数据库(6)

          本文链接:https://www.haomeiwen.com/subject/mmdxnxtx.html